Cannot open channel to x at election address...zookeeper 节点连接问题

Cannot open channel to x at election address...zookeeper 节点连接问题
 
此主要问题集中在集群的节点信息配置上。常规配置如下:
 
server.1=192.168.100.133:2888:3888
server.2=192.168.100.131:2888:3888
server.3=192.168.100.130:2888:3888
 
# server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
# 192.168.100.133为集群里的IP地址,第一个端口是master和slave之间的通信端口, Leader监听此端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口,默认是3888
 
这样的配置乍一看没问题,但是在实操的时候可能出现各式各样的问题。
  1. 首先,各个节点直接是能通讯的,不然怎么进行选举等操作?所以首先要保证节点之间能够正常通讯,是telnet通,不是ping通!
  2. 其次,确保部署服务器上没有启动Tomcat、Jenkins等占用8080端口的服务,尤其是Jenkins,默认就是8080(坑了一把,与Jenkins共用一台服务器,修改后要 重启)。 zookeeper部署3.5以后的版本, 会自动占用8080端口。所以就会有端口冲突。类似这样的错误: Caused by: java.net.BindException: Address already in use。这样的问题都可以在日志中看到,一定要随时观察日志,能解决自己的问题。
  3. 再次,查看服务器的2181端口是否被占用,有的话,可以关闭对应的进程或修改端口。  2181端口是对cline端提供服务。
  4. 以上几点都是关于节点端口之间通讯的问题,不一定非得使用默认的2888、3888,取决于服务器可用的端口,将2888:3888 改为 2878:3878等都是可以的。
  5. 参考Stack Overflow上面的回答:每台机器上的zoo.cfg配置文件, 修改其对应的ip地址为0.0.0.0
 
     6. 另外几点我没有遇到,但是网上出现的概率还是挺高的,罗列如下:
          a. 查看防火墙是否关闭;
          b. 检查各节点时间是否一致!这个其实也挺重要的,时间不同步也是很头痛的事情,可以使用yum -y install ntp ntpdate,设置系统时间与网络时间同步:ntpdate cn.pool.ntp.org
          c. 检查各节点zookeeper的zoo.cfg的配置文件;
          d. myid注意服务器每个要和配置文件一一对应;
          e.查看三台节点的 /et/chosts 配置是否一致;
 
     7. 重启大法!为什么把重启放到最后单独说一下,是因为可能上面的各种情况尝试过,启动zookeeper后,日志中依然有连接拒接的情况: Cannot open channel to 1 at election address /192.168.100.133:3889 java.net. ....百思不得其解,后来看到这篇文章: https://blog.csdn.net/sailist/article/details/83717298  ( 无论怎样都无法解决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。
 
 

参考链接

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值