Cannot open channel to x at election address...zookeeper 节点连接问题
此主要问题集中在集群的节点信息配置上。常规配置如下:
# server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
# 192.168.100.133为集群里的IP地址,第一个端口是master和slave之间的通信端口, Leader监听此端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口,默认是3888
这样的配置乍一看没问题,但是在实操的时候可能出现各式各样的问题。
6. 另外几点我没有遇到,但是网上出现的概率还是挺高的,罗列如下:
a. 查看防火墙是否关闭;
b. 检查各节点时间是否一致!这个其实也挺重要的,时间不同步也是很头痛的事情,可以使用yum -y install ntp ntpdate,设置系统时间与网络时间同步:ntpdate
;
c. 检查各节点zookeeper的zoo.cfg的配置文件;
d. myid注意服务器每个要和配置文件一一对应;
e.查看三台节点的 /et/chosts 配置是否一致;
7. 重启大法!为什么把重启放到最后单独说一下,是因为可能上面的各种情况尝试过,启动zookeeper后,日志中依然有连接拒接的情况:
Cannot open channel to 1 at election address /192.168.100.133:3889 . ....百思不得其解,后来看到这篇文章:
(
无论怎样都无法解决Cannot open channel to x at election address的原因。)
然后尝试 ./zkServer.sh restart 重启了一下,一个节点好了,又对另一个节点重启了两次,连接正常了,日志也没有继续报错,显示两个节点连接正常...如下图。
Mode: follower myid:2
Mode: follower myid:1
很神奇,问题虽然是解决了,但是原因尚未搞明白,猜测可能是ip等配置修改完成后需要重启zookeeper节点进行手动重连。如若有心得的同学还望不吝赐教。
另外,zookeeper不同版本启动后的说明也有点差异。
下面是ZooKeeper版本:3.4.6。此时启动失败会明确说明error contacting service。
(上图来源于
)
下面是本文的3.6.2,此时启动是否正常需要查看日志,不会明显提示error。
参考链接