一台测试的服务器重启后,运行zookeeperd的启动脚本显示启动成功:
- JMX enabled by default
- Using config: /data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfg
- Starting zookeeper ... STARTED
但用zkServer.sh status查看,反馈如下:
- JMX enabled by default
- Using config: /data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfg
- Error contacting service. It is probably not running.
使用ps -aux|grep java命令也没看到任何进程,后来经过不断排查,终于发现了原因如下:
在zookeeper的配置文件zoo.cfg中:
- dataDir=/data/installed
在/data/installed里面查找zookeeper_server.pid这个文件,里面保存的是zookeeper的启动id,当服务器重启时zookeeper非正常退出,这个zookeeper_server.pid的值没有被清除,当执行zookeeper启动脚本时发现这个文件的值,就以为zookeeper已经启动。
解决方案:
把zookeeper_server.pid里面的内容清空,zookeeper就能正常启动。