Zookeeper无法启动Error contacting service. It is probably not running
转载地址:https://blog.csdn.net/u012453843/article/details/70878117在启动zookeeper集群的单个zookeeper节点时总是报如下错误[root@7-2 opt]#/opt/zookeeper/bin/zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/
在启动zookeeper集群的单个zookeeper节点时总是报如下错误
[root@7-2 opt]# /opt/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
排查思路:
1、是否安装了JDK,因为zookeeper的运行需要JVM环境,可以使用java和java -version命令来验证,如下所示,可以看到JDK已经正确安装。
[root@7-2 ~ ]# java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
2、 查看zookeeper的端口2181是否已经被占用了(如果改用其它端口了,根据大家的实际来操作),如果2181端口被占用了便杀掉这个进程。
[root@7-2 ~ ]# netstat -apn | grep 2181
tcp 0 0 :::2181 :::* LISTEN 1403/java
[root@7-2 ~ ]# kill -9 1403
[root@7-2 ~ ]#netstat -apn | grep 2181
3、 如果上面的操作还解决不了问题,到zookeeper的data目录下,可以看到如下所示的文件,其中version-2文件夹和zookeeper_server.pid两个文件都是需要删除掉的。
[root@7-2 ~ ]# cd /data/zookeeper/ 路径是zookeeper/conf/zoo.cfg中dataDir
[root@7-2 zookeeper]# ll
-rw-r--r-- 1 root root 2 3月 3 20:28 myid
drwxr-xr-x 2 root root 73 3月 4 17:35 version-2
-rw-r--r-- 1 root root 1424 3月 4 17:22 zookeeper.out
-rw-r--r-- 1 root root 4 3月 4 17:35 zookeeper_server.pid
[root@7-2 zookeeper]# rm -rf version-2/ zookeeper_server.pid
4、特殊情况,上述删除文件后,重启zookpeer发现没有生成version-2、zookeeper_server.pid,而且查看日志 /data/zookeeper/zookeeper.out无任何记录
解释zookeeper_server.pid是什么,这个是一个再zk启动时才创建的一个文件,里面是一个pid,也就是这个zk运行的pid,zk的server脚本就是通过配置文件的data路径配置来找这个pid文件,从而确定server脚本要处理哪一个zk进程,所以一旦配置文件的data目录配置有问题,那么zk服务脚本就找不到这个pid文件了。
[root@7-2 zookeeper]# cat /opt/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
server.1=10.4.7.2:2888:3888
server.2=10.4.7.3:2888:3888
server.3=10.4.7.4:2888:3888
看dataDir=/tmp/zookeeper,这也是我个人没启动的原因,之前一直是dataDir=/date/zookeeper,不止为何突然变成他tmp,由于我dataDir=/tmp/zookeeper下没有myid,导致无法启动,所以修改后可以正常
[root@7-2 zookeeper]# cat /opt/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/date/zookeeper
clientPort=2181
server.1=10.4.7.2:2888:3888
server.2=10.4.7.3:2888:3888
server.3=10.4.7.4:2888:3888
5、而且查看日志 /data/zookeeper/zookeeper.out 【zookeeper】data/zookeeper_server.pid: No such file or directory FAILED TO WRITE PID 报错
问题主要原因还是data目录配置有问题,zk的配置文件路径解析确实不够智能,路径必须是全路径而且是从根目录开始的,如果使用相对路径报错
[root@7-2 zookeeper]# cat /opt/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir= ~/date/zookeeper
clientPort=2181
server.1=10.4.7.2:2888:3888
server.2=10.4.7.3:2888:3888
server.3=10.4.7.4:2888:3888
6、还有一种情况就是,启动zookeeper集群的某个节点时死活启动不了,我们可以先启动zookeeper的另外几个节点,等把其它节点启动好了,这个启动不了节点就自动启动好了!!!
更多推荐
所有评论(0)