CentOS 启动不了 ZooKeeper,原因有很多种,下面按常见原因 → 排查方法 → 解决办法给你梳理一下,你可以对照看是哪一种。
ZooKeeper 必须依赖 Java
排查:
java -version
解决:
yum install -y java-1.8.0-openjdk
最常见的是:
dataDir 路径不存在排查:
cat conf/zoo.cfg
重点看:
dataDir=/var/lib/zookeeper
clientPort=2181
解决:
mkdir -p /var/lib/zookeeper
如果你是 集群模式,每个节点必须有 myid
检查:
cat /var/lib/zookeeper/myid
解决:
echo 1 > /var/lib/zookeeper/myid
(数字要和 zoo.cfg 里的 server.x 对应)
排查:
netstat -tunlp | grep 2181
解决:
CentOS 常见坑
防火墙:
systemctl stop firewalld
或开放端口:
firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload
SELinux:
setenforce 0
ZooKeeper 数据目录权限不对
解决:
chown -R zookeeper:zookeeper /var/lib/zookeeper
❌ 错误:
./zkServer.sh
✅ 正确:
./zkServer.sh start
查看状态:
./zkServer.sh status
ZooKeeper 启不来,一定看日志
cat logs/zookeeper.out
# 或
tail -f logs/zookeeper-*.log
把报错贴出来,我可以直接帮你定位。
如果你愿意,可以把 报错日志 或 zoo.cfg 内容贴出来,我直接帮你分析是哪一步炸了。