在文章 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

http://blog.sina.com.cn/h6k65



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐