1. 安裝Zookeeper
在Debian上安裝Zookeeper有兩種主要方式:通過APT包管理器(簡單快捷,適合生產環境)或手動下載編譯(適合需要特定版本的場景)。
zookeeper
包,系統會自動處理依賴(如Java):sudo apt update && sudo apt install zookeeper zookeeperd -y
/opt
目錄并重命名:wget https://downloads.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz
tar -xzf apache-zookeeper-3.8.0-bin.tar.gz -C /opt
sudo mv /opt/apache-zookeeper-3.8.0-bin /opt/zookeeper
2. 配置Zookeeper
配置文件位于/etc/zookeeper/conf/zoo.cfg
(APT安裝)或/opt/zookeeper/conf/zoo.cfg
(手動安裝),需修改以下核心參數:
dataDir
,用于存儲快照)、客戶端端口(clientPort
,默認2181):dataDir=/var/lib/zookeeper
clientPort=2181
server.X
條目(X
為節點ID,對應dataDir
下的myid
文件內容):server.1=zoo1:2888:3888 # zoo1為節點主機名/IP,2888為Leader選舉端口,3888為數據同步端口
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
dataDir
目錄下創建myid
文件,寫入對應節點ID(如節點1寫1
):echo "1" | sudo tee /var/lib/zookeeper/myid
3. 啟動與維護
/etc/systemd/system/zookeeper.service
:[Unit]
Description=Apache Zookeeper
After=network.target
[Service]
Type=forking
User=zookeeper
Group=zookeeper
ExecStart=/opt/zookeeper/bin/zkServer.sh start
ExecStop=/opt/zookeeper/bin/zkServer.sh stop
ExecReload=/opt/zookeeper/bin/zkServer.sh reload
Restart=always
[Install]
WantedBy=multi-user.target
加載服務并啟動:sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
active (running)
表示正常):sudo systemctl status zookeeper
4. 性能優化
sudo swapoff -a
)或減少交換空間(sudo swapon --show
),調整JVM堆大?。?code>-Xms4g -Xmx4g,設置為物理內存的1/3)。tickTime
(心跳間隔,默認2000ms,可根據網絡延遲修改)、initLimit
(初始化超時,默認5tickTime)、syncLimit
(同步超時,默認2tickTime);開啟自動清理(autopurge.snapRetainCount=3
保留3個快照,autopurge.purgeInterval=1
每天清理一次)。5. 安全加固
jaas.conf
配置文件),設置ACL(訪問控制列表)限制節點操作(如create
、write
權限)。ssl.keyStore
和ssl.trustStore
路徑)。sudo ufw allow 2181/tcp
sudo ufw allow 2888/tcp
sudo ufw allow 3888/tcp
sudo ufw reload
6. 監控與運維
zkServer.sh status
查看節點狀態,echo stat | nc localhost 2181
獲取集群統計信息(如Leader節點、延遲)。zookeeper_exporter
采集指標)+ Grafana(可視化監控面板),或使用Zabbix、Datadog等工具。/var/log/zookeeper/zookeeper.log
(日志路徑可通過log4j.properties
調整),使用ELK Stack(Elasticsearch+Logstash+Kibana)進行日志分析,快速定位異常。