CentOS上Zookeeper故障排查步骤
一 快速状态与进程检查
二 配置与权限核查
三 网络连通与防火墙
四 日志与数据目录深入排查
五 常见故障与修复对照表
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| 服务未启动或状态报错 | systemctl status、zookeeper.out | 查看日志首屏报错;若为配置/权限/端口问题,按第二、三节修正后重启 |
| Error contacting service | ./zkServer.sh status | 启动服务:systemctl start zookeeper 或 zkServer.sh start;确认进程 QuorumPeerMain 存在 |
| 端口被占用 | ss/netstat 查 2181/2888/3888 | 结束占用进程或修改 zoo.cfg 的 clientPort/相应端口后重启 |
| 集群无法形成或 Leader 频繁切换 | echo stat/mntr、ping/telnet | 核对 server.X 与 myid 一致;检查 2888/3888 连通与防火墙;排查网络抖动与磁盘/CPU 资源 |
| 数据目录损坏无法启动 | 日志含 Unable to load database | 备份后清理 dataDir/version-2(必要时 dataLogDir),再启动;后续配置 autopurge 策略 |
| 客户端连不通 | telnet/nc 到 2181 | 放行防火墙 2181;核对监听地址与 clientPort;检查 /etc/hosts 解析 |
| Java 或 JAVA_HOME 问题 | java -version、$JAVA_HOME | 安装合适 JDK(如 OpenJDK 8),正确导出 JAVA_HOME 并放入 PATH |