zookeeper异常down机重启失败解决方案

前言

公司服务器异常down机导致所有项目都需要重新启动,在本菜启动zookeeper的时候发现zk无法正常启动,错误如下

[root@maisitest zookeeper-3.4.5]# bin/zkServer.sh start
JMX enabled by default
Using config: /root/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... already running as process 2860..

上边信息提醒linux进程2860已经被占用,但是查了一下2860的进程也没有被占用,看了了zkServer.sh的启动脚本,发现异常问题所在:

检查问题所在

检查进程占用情况

[root@maisitest bin]# lsof -i:2860
[root@maisitest bin]#

zkServer.sh启动脚本

 echo  -n "Starting zookeeper ... "
    if [ -f $ZOOPIDFILE ]; then
      if kill -0 `cat $ZOOPIDFILE` > /dev/null 2>&1; then
         echo $command already running as process `cat $ZOOPIDFILE`.
         exit 0
      fi
    fi
2017-11-02_163144.png

看到$ZOOPIDFILE,想到应该是进程ID文件已经存在,导致启不起来。

解决方案

去zoo.conf文件下看了看zookeeper的dataDir,发现zookeeper_server.pid已经存在,最后一次修改时间就是早上,由于机器上次是因为断电异常关闭,大概导致了这个pid file的残留。删除掉原来的zookeeper_server.pid文件,重新启动即可。

你可能感兴趣的:(zookeeper异常down机重启失败解决方案)