以下是Zookeeper常見錯誤及解決方案:
服務啟動失敗
netstat -tulnp | grep 2181
,修改zoo.cfg
中clientPort
或終止占用進程。zoo.cfg
中dataDir
路徑正確且權限充足:chown -R zookeeper:zookeeper /path/to/dataDir
。java -version
,設置JAVA_HOME
并添加到PATH
。dataDir/version-2
目錄后重啟。客戶端連接問題
ping
服務器IP,telnet server-ip port
。sudo firewall-cmd --add-port=2181/tcp --permanent
。connectString
和clientPort
配置正確,客戶端使用正確版本。會話過期(SessionExpired)
sessionTimeout
參數(建議設置為集群tickTime
的2-3倍)。keepAlive
方法維持會話,或重新創建Zookeeper實例。數據不一致
sync()
方法強制同步數據。節點相關錯誤(NodeExists/NoNode)
性能問題(高延遲、低吞吐量)
tickTime
(如2000ms),啟用autopurge
自動清理日志。dataLogDir
參數。權限與安全問題
sudo ufw allow 2181/tcp
。排查工具:
zookeeper.out
或logs
目錄下的日志文件。echo stat | nc localhost 2181
(需安裝nc
工具)。參考來源: