我部署了一个长期运行的Storm拓扑。运行几个小时后,整个拓扑结构都出现了问题。我查看了工作日志,并找到了这些日志。正如它所说,zookeeper客户端会话超时并导致重新连接。我怀疑它与我破碎的拓扑结构有关。现在我试着找出导致客户端超时的原因。
2016-02-29T10:34:12.386+0800 o.a.s.z.ClientCnxn [INFO] Client session timed out, have not heard from server in 23789ms for sessionid 0x252f862028c0083, closing socket connection and attempting reconnect
2016-02-29T10:34:12.986+0800 o.a.s.c.f.s.ConnectionStateManager [INFO] State change: SUSPENDED
2016-02-29T10:34:13.059+0800 b.s.cluster [WARN] Received event :disconnected::none: with disconnected Zookeeper.
2016-02-29T10:34:13.197+0800 o.a.s.z.ClientCnxn [INFO] Opening socket connection to server zk-3.cloud.mos/172.16.13.147:2181. Will not attempt to authenticate using SASL (unknown error)
2016-02-29T10:34:13.241+0800 o.a.s.z.ClientCnxn [WARN] Session 0x252f862028c0083 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_31]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716) ~[na:1.8.0_31]
at org.apache.storm.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361) ~[storm-core-0.9.6.jar:0.9.6]
at org.apache.storm.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) ~[storm-core-0.9.6.jar:0.9.6]
答案 0 :(得分:1)
您的客户端无法再与ZooKeeper服务器通信。发生的第一件事是在协商的会话超时内没有心跳的答案:
2016-02-29T10:34:12.386 + 0800 o.a.s.z.ClientCnxn [INFO]客户端会话超时,没有从23789ms的服务器中听到sessionid 0x252f862028c0083,关闭套接字连接并尝试重新连接
然后当它试图重新连接时,它连接被拒绝了:
2016-02-29T10:34:13.241 + 0800 o.a.s.z.ClientCnxn [WARN]会话0x252f862028c0083,用于服务器空,意外错误,关闭套接字连接并尝试重新连接 java.net.ConnectException:拒绝连接
这意味着您的ZooKeeper服务器:
要了解更多信息,您需要检查(Hadoop?)群集上的ZooKeeper服务器日志。
答案 1 :(得分:0)
发生这种情况的一种方法是,如果您启动 zookeeper,然后在终端中中断,然后尝试启动 kafka。
为了使用 kafka,您确实应该使用 3 个终端窗口(如果您从 Windows SSH 连接到您的实例,则应使用 3 个 PuTTY 会话)
Zookeeper 服务器的第一次会话。 Kafka 服务器的第二个会话。 第三个会话,用于运行 Kafka 命令以执行创建主题等操作。
答案 2 :(得分:-1)
始终使用2181作为zookeeper连接的端口号,直到您没有配置您的zookeeper !!!
答案 3 :(得分:-1)
我已经在集群模式下使用3个zookeeper服务器和3个Kafka服务器启动了Kafka。所有zookeeper服务器均已成功启动,但是在启动Kafka服务器时,其连接断开,并指出“ Kafka服务器启动期间发生致命错误。准备关闭(kafka.server.kafkaserver)”。在调查过程中,我发现Kafka服务器在18秒后每次都断开连接(这是zookeeper.connection.timeout.ms = 18000默认值),所以我更新了它并解决了问题。