Bootstrap

解决zookeeper集群重启 Error contacting service. It is probably not running 问题

一 问题出现情形

1 集群启动后异常关闭,重启出错

2 集群未正常启动

二 查看zookeeper.out分析原因

 cat zookeeper.out

  1 网络问题。排查防火墙

java.net.NoRouteToHostException: 没有到主机的路由 (Host unreachable)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:558)
	at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:610)
	at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:838)
	at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:957)

解决步骤:问题排查 7 ->[2、6] ->重启集群

2 初次启动。

解决步骤:问题排查1-->2-->3-->4-->5-->7-->重启集群

备注:初次启动 个个环节都有可能有问题 如果有报错信息可以针对性解决

3 重新启动。

解决步骤:暂停集群-->2-->6-->7-->重启集群

备注:重新启动主要是,节点配置信息问题以及防火墙问题。需要按顺序,暂停zookeeper,kill进程,删除节点信息,关闭防火墙,再次启动集群

三 问题排查

1 java环境

java -version

2 排查端口占用

netstat -apn | grep 2181   #默认2181端口为服务端提供端口

备注:若集群未启动 则不应该有端口占用

kill -9 pid                #pid为占用端口的进程id号

3 排除网卡问题

ip addr

备注:如果为物理地址则 重启网卡

service network restart

4 排除网络问题

ping ip               #ping其他节点主机 若zoo.cfg 使用域名则用域名
备注:无ping命令则安装  yum install iputils-ping 若有问题则 host映射问题

5 排查节点配置信息

dataDir 是否存在 myid文件内容与 service.x 中x对应

例如:zk01  其对应service.x  则该目录下myid内容为1

6 删除节点残留信息

rm -rf version-2/ zookeeper_server.pid

7 防火墙拦截端口

systemctl status firewalld.service

systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止启动防火墙

;