Linux 下 ZooKeeper 连不上 是很常见的问题,原因通常集中在 服务状态、网络、配置、 firewall、Java 环境 这几类。下面按排查顺序帮你快速定位。
ps -ef | grep zookeeper
或
systemctl status zookeeper
# 或
zkServer.sh status
常见情况:
# 默认日志路径
tail -n 100 /opt/zookeeper/logs/zookeeper.log
# 或
tail -n 100 zookeeper.out
常见错误:
ZooKeeper 默认端口:2181
netstat -lntp | grep 2181
# 或
ss -lntp | grep 2181
如果看不到 2181:
cat conf/zoo.cfg
重点看:
clientPort=2181
dataDir=/var/lib/zookeeper
如果是远程连接,确认:
# 不要只绑定 127.0.0.1
clientPortAddress=0.0.0.0
⚠️ 如果只监听 127.0.0.1,远程一定连不上。
systemctl stop firewalld
# 或
iptables -F
firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload
云服务器还要检查:
本地:
zkCli.sh -server 127.0.0.1:2181
远程:
zkCli.sh -server 服务器IP:2181
错误示例:
java -version
ZooKeeper 3.5+ 需要 JDK 8 或以上
cat /var/lib/zookeeper/myid
如果你愿意,可以把下面信息发我,我可以直接帮你定位:
zkServer.sh status 输出zoo.cfg 内容我可以更精准告诉你是哪一步卡住了。