Zookeeper学习异常处理01-启动ZK后jsp没有显示QuorumPeerMain
我使用的Centos6.5与zookeeper2.4.1版本,进行完全分布式部署。部署完毕后,启动三台ZK集群,使用status查看情况发现异常。现象在使用 ./bin/zkServer.sh start启动zookeeper后,jsp没有显示QuorumPeerMain进程。zookeeper单机运行,突然连接不上,启动后总是成功的,但是启动后查看状态又显示没有在运行查看zookeeper.ou
我使用的Centos6.5与zookeeper2.4.1版本,进行完全分布式部署。部署完毕后,启动三台ZK集群,使用status查看情况发现异常。
现象
- 在使用 ./bin/zkServer.sh start启动zookeeper后,jsp没有显示QuorumPeerMain进程。
- zookeeper单机运行,突然连接不上,启动后总是成功的,但是启动后查看状态又显示没有在运行
查看zookeeper.out日志,报出错误:ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally java.lang.NullPointerException,是一个空指针异常。
解决方案:
- 可能是部署完后启动zk后又修改其配置信息导致。重新安装zookeeper。
- 在日志内显示Cannot open channel to 2 at election address /10.1.85.106:3888
查阅了一些资料,原因一般有:
- 端口被占用
- ip地址不是本机网卡
解决方案
- 如果是端口被占用,换一个端口监听即可
- 如果是原因2.我们需要让服务器监听0.0.0.0的ip(所有网卡)
在conf中的zoo.cfg配置文件中添加
quorumListenOnAllIPs=true
处理
这是一位博主的方法,但我试过后发现还是不行,最好我果断删除zookeeper重装就好了,但是集群间不能选举就很无语。。。
自我检查
- 防火墙关闭
- zoo.cfg是否配置正确
- 每个机器人上的myid是否对应
- 端口2181、2888、3888是否被占用
- 配置环境变量(个人感觉没用)
解决
-
找到zoo.cfg中配置的dataDir和dataLogDir路径。然后删除两个文件夹下的version -2文件夹和zookeeper_server.pid文件。
-
感觉是zookeeper的版本问题,下载个新一版的安装
这个方法有效我之前用3.4.1正常配置后启动就莫名其妙的各种连不上,从配置到防火墙再到日志一样检查都没有毛病。但启动集群就是说其他zk没有启动。整了好几天,在网上看别人轻轻松松配置完一启动就zk就选举完了。整了几天后,想着从根源抓取,果断换了一个网上常用的版本3.4.10,这个我一配置完后,全面检查了一遍,都没发病后,怀着忐忑的心情启动zk集群,用status看情况,看到一号机是Leader,整个人都好起来了。
更多推荐
所有评论(0)