zookeeper status出现error的解决方案

来源:互联网 发布:mac 刻录机 编辑:程序博客网 时间:2024/06/03 15:33

怀疑人生的一次体验

辛辛苦苦安装完三台虚拟机,安装zookeeper,修改了配置文件,结果start zookeeper后一查status,他喵的给我来个error。。。

[root@hadoop bin]#  ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zk/bin/../conf/zoo.cfgError contacting service. It is probably not running.

没事,谁让咱脾气好,慢慢查呗。
查看zookeeper.out文件,说是 拒绝连接 (Connection refused)

2017-09-23 10:41:36,464 [myid:1] - WARN  [WorkerSender[myid=1]:QuorumCnxManager@588] - Cannot open channel to 2 at election address /192.168.1.105:3888java.net.ConnectException: 拒绝连接 (Connection refused)        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:562)        at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:538)        at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:452)        at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:433)        at java.lang.Thread.run(Thread.java:748)

百度了一下,都说是配置文件zoo.cfg

结果目录对着,文件对着,ip对着,myid也对着,防火墙压根没开。。。。

不信邪了我,看了无数遍文件,都要看吐了,还是没找出哪里有错,查到怀疑人生。无奈,滚去睡觉。
第二天起来,继续查。发现server2和server3的zookeeper.out都打不开,提示什么
java错误?百度了一下,原来jdk环境配置路径写错了!!!我可能是第一个因为jdk而导致zookeeper error 的人吧。所以百度不到这个细节。。。蠢哭自己了(๐॔˃̶ᗜ˂̶๐॓)。

总结一下可能出现error的情况吧

1. zoo.cfg配置文件中指定目录却没有创建! 创建相应目录即可。2. zoo.cfg中dataDir指定路径为Myid文件的路径。Myid内容与:server.?=localhost:2888:3888 中你所设置?一致!3.使用service iptables stop 关闭防火墙  使用service iptables status确认4. 1,打开zkServer.sh 找到status)    STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`在nc与localhost之间加上 -q 1 (是数字1而不是字母l)如果已存在则去掉#我的zkServer.sh没有这段内容,可能跟版本有关5.2181端口被占用!        zkServer.sh stop        #先停止zookeepnetstat -an | grep 2181 #查看端口是否占用,如果占用clientPort = 2888       #随便找个没占用的端口号!6.虚拟网络编辑器没有选择了vmnet0   我选了好几次才选择上,估计选择后要点应用7.jdk是否配置正确   我就是。。。。。不说了,桑心!8.玄学
阅读全文
0 0