2016-03-01 211 views
4

我部署了一個長時間運行的Storm拓撲。幾個小時運行後,整個拓撲結構都下降了。我查看了工作人員日誌,並找到了這些日誌。正如它所說的,zookeeper客戶端會話超時並導致重新連接。我懷疑它與我的斷開的拓撲有關。現在我試圖找出可能導致客戶端超時的原因。什麼會導致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] 

回答

1

您的客戶端不能再與ZooKeeper服務器通話。所發生的第一件事是有協商的會話超時內心跳沒有答案:

2016-02-29T10:34:12.386 + 0800 oaszClientCnxn [INFO]客戶端會話超時,都沒有音信在23789ms的會話ID 0x252f862028c0083服務器,關閉套接字連接,並嘗試重新連接

然後當它試圖重新連接,它有一個連接被拒絕:

2016-02-29T10:34:13.241 + 0800 oasz ClientCnxn [WARN] Session 0x252f862028c0083 for服務器無效,意外的錯誤,關閉套接字連接,並嘗試重新連接 java.net.ConnectException:連接被拒絕

這意味着要麼你的ZooKeeper服務器:

  • 不可達(網絡連接下)
  • 已死(所以沒有任何東西正在監聽插座)
  • GCing本身已經死亡並且無法通信(儘管這可能會發出連接超時錯誤,我不確定)

要告訴您更多信息,您需要檢查您的(Hadoop?)羣集上的ZooKeeper服務器日誌。

+0

請問我面臨同樣的問題如果我有GC問題,我該如何解決它? – user5520049

0

始終使用2181作爲zookeeper連接的端口號,直到您尚未配置zookeeper !!!