[root@hadoop-one 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 947..
看了下947这个进程,发现是linux系统进程,应该不会冲突。又检查了下zookeeper会使用到的几个端口号,也都没有被占用。
后来打开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
看到$ZOOPIDFILE,想到应该是进程ID文件已经存在,导致启不起来。
去dataDir下看,果然有一个zookeeper_server.pid
删掉,重启,问题解决。
值得注意的是:
1.dataDir一定要查看zoo.cfg中的配置,找出对应的URL,有时候一个机器会布置多个zk,目录混杂,千万别找错。
2.这里也提供了一种解决问题的思路,根据启动shell脚本查出打印的echo内容定位问题,解决问题。
参考链接:https://blog.csdn.net/wanghai__/article/details/8920782