Zookeeper无法启动Error contacting service. It is probably not running

在启动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的另外几个节点,等把其它节点启动好了,这个启动不了节点就自动启动好了!!!

 

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值