启动zookeeper报错:Error contacting service. It is probably not running

在网上查看了很多说法,但是很多都没有说到点子上,经过多次研究总结如下:

出现此种报错一般都是分布式,独立模式不会报错,zoo.cfg和myid等文件也配置正确.

输入命令jps,发现也有QuorumPeerMain

那么查看日志

#cd zookeeper-3.4.8/bin

#tailf zookeeper.out
其中报错部分如下:

[myid:1] - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 2 at election address /prod-app2:3888
java.net.NoRouteToHostException:  没有到主机的路由

红字部分是我的另一台机器,经过研究发现"没有到主机的路由",这是防火墙没有关闭导致,或者可以配置2888 3888端口

#vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT

注意所有机器都要配置防火墙.
随后再次重新启动zookeeper,再看日志,依然报错

 [myid:1] - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@400] - Cannot open channel to 2 at election address /prod-app2:3888
java.net.ConnectException: 拒绝连接

变了,说明是防火墙的问题,那么错误就是在于英语部分,说明连不上第二台机器,这是个非常非常低级的错误,原因就是所有机器都要bin/zkServer.sh start
如果只开一台,那么这台就会寻找zoo.cfg配置的其他机器,如果其他机器没有开启,就是无法连接,当其他机器也开启的时候才会定下哪台是leader 哪台是follower,日志也就不会报错了,但是网上那么多解决办法都没有提到这一点,好尴尬.




你可能感兴趣的:(zookeeper常见问题)