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

前言

最近在搭建 zookeeper 服务,期间遇到一些报错,这里整理并记录下。

报错内容

#./bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /tmp/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.

日志报错内容:

2022-06-14 17:50:43,174 [myid:1] - WARN  [QuorumConnectionThread-[myid=1]-2:QuorumCnxManager@347] - Cannot open channel to 3 at election address tolc-kafka-0004/15.252.92.159:4181
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.initiateConnection(QuorumCnxManager.java:339)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:402)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

问题原因

我这里遇到的原因是 /etc/hosts 文件中有一行配置了回环地址,即 127.0.1.1 kafka-001 注意我这里是 127.0.1.1 不是 127.0.0.1。所以导致通信失败。

解决方案

注释掉回环地址。

还有其余的排查思路:

  • 检查/etc/hosts 是否正确映射
  • 检查时钟同步
  • 检查防火墙
  • 在/etc/hosts 中加入 0.0.0.0 地址映射

问题解决!


版权声明:本文为Mrerlou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。