在文章 zookeeper启动失败的排错中描述了zookeeperd的一种启动错误,今天笔者还发现了另外一种启动错误,顺便记录下来:
一台测试的服务器重启后,运行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就能正常启动。
[文章作者]曾健生
[作者邮箱]h6k65@126.com
[作者QQ]190678908
[博客] http://blog.csdn.net/newjueqi