Zookeeper启动成功后拒绝连接的解决方案
zookeeper启动成功后zkServer.sh status出错一、问题出现情形运行zookeeperd后显示启动成功:JMX enabled by defaultUsing config: /data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfgStarTIng zookeeper ... STARTED但用zkServe...
·
zookeeper启动成功后zkServer.sh status出错
一、问题出现情形
运行zookeeperd后显示启动成功:
JMX enabled by default
Using config: /data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfg
StarTIng zookeeper ... STARTED
但用zkServer.sh status查看,反馈如下:
JMX enabled by default
Using config: /data/programfiles/zookeeper-3.4.5/bin/../conf/zoo.cfg
Error contacTIng service. It is probably not running.
二、查看问题原因
查看zookeeper.out文件(默认在zookeeper目录下)
vim zookeeper.out
在底部可看到报错(部分截取):
23 00:59:07,068 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@382] - Cannot open channel to 2 at election address /192.168.110.127:3888
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:368)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.toSend(QuorumCnxManager.java:341)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.process(FastLeaderElection.java:449)
at org.apache.zookeeper.server.quorum.FastLeaderElection$Messenger$WorkerSender.run(FastLeaderElection.java:430)
at java.lang.Thread.run(Thread.java:744)
2016-08-23 00:59:07,074 [myid:1] - WARN [WorkerSender[myid=1]:QuorumCnxManager@382] - Cannot open channel to 3 at election address /192.168.110.126:3888
java.net.ConnectException: Connection refused
三、问题排查
(原因分析)
1. java环境
查看jdk版本是否与zookeeper版本兼容
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.防火墙拦截端口
systemctl status firewalld.service
systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld.service #禁止启动防火墙
总的来说,一般就是这六点原因:
第一,zoo.cfg文件配置出错:dataLogDir指定的目录未被创建;
第二,myid文件中的整数格式不对,或者与zoo.cfg中的server整数不对应
第三,防火墙未关闭;
第四,2181端口被占用;
第五,zoo.cfg文件中主机名出错;
第六,hosts文件中,本机的主机名有两个对应,只需保留主机名和ip地址的映射
本人最终未得以解决,希望找的这些解决方案对大家有用吧~
更多推荐
已为社区贡献1条内容
所有评论(0)