Zookeeper集群间3888端口拒绝连接

问题症状

在华为云服务器上用Ambari 搭Hadoop集群。各个组件启动时候都报连接zookeeper 超时。但是Ambari 里显示zookeeper 状态是正常的。jps各节点也能看到QuorumPeerMain进程。查看zookeeper 日志发现服务间连接3888端口被拒绝。日志如下:

2021-03-10 18:07:56,631 - WARN  [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@584] - Cannot open channel to 2 at election address worker2.hadoop.hdp/192.168.1.88:3888
java.net.ConnectException: Connection refused (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.connectAll(QuorumCnxManager.java:605)
	at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
	at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:876)

问题定位

常见的情况检查了一遍,防火墙firewalls,selinux也都关闭了。各zookeeper的服务的3888端口也正常监听。
网上查了各种情况,一顿操作折腾半天依然不行。
后来一想会不会是zookeeper本身配置了什么,拒绝了外部连接。验证

yum install telnet
telnet 本机ip 3888 #正常连通
telnet 其他机器IP 3888 #连接拒绝。

换其他服务的端口。我整了个nginx,开了8000端口,试了试可以正常连接。到这里基本可以确定是zookeeper 配置的问题。

问题解决

查资料找到,如果是在云服务器上部署的,需要配置quorumListenOnAllIPs=true,用以监听所有网卡,这个和云服务器的一些虚拟技术有关,否则的话会抛异常。
因为用的Ambari 搭建的集群,在Ambari 后台给zoo.cfg增加配置quorumListenOnAllIPs=true。
在这里插入图片描述
重启zookeeper 集群,check 问题解决。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值