解决Ubuntu上Zookeeper连接问题可按以下步骤排查:
检查服务状态:
sudo systemctl status zookeeper # 确保服务已启动
若未启动,使用 sudo systemctl start zookeeper 启动服务。
验证配置文件:
检查 /etc/zookeeper/conf/zoo.cfg 或 /opt/zookeeper/conf/zoo.cfg,确认:
clientPort(默认2181)设置正确。dataDir 路径存在且权限正确。server.X 配置与节点IP/ID匹配。检查网络与防火墙:
ping 和 telnet <IP> 2181 测试网络连通性。sudo ufw allow 2181/tcp # Ubuntu
sudo firewall-cmd --add-port=2181/tcp --permanent # CentOS
排查端口占用:
sudo netstat -tuln | grep 2181 # 检查端口是否被占用
若被占用,修改 `zoo.cfg` 中的 `clientPort` 或停止占用进程。
查看日志定位问题:
日志文件通常位于 /var/log/zookeeper/ 或 dataDir 目录,通过 tail -f zookeeper.log 分析错误信息。
确认Java环境:
确保已安装正确版本的Java(参考Zookeeper官方要求),并配置 JAVA_HOME 环境变量。
版本兼容性:
确保客户端与服务器的Zookeeper版本一致。
重启服务:
修改配置后,重启Zookeeper使更改生效:
sudo systemctl restart zookeeper
参考来源:[1,2,3,4,5,6,7,8,10,11]