報錯背景:
CDH集群中,將kafka和Flume整合,將kafka的數據發送給Flume消費。
啟動kafka的時候正常,但是啟動Flume的時候出現了報錯現象。
但是我檢查了Flume,Flume的狀態很正常,於是我又查看了zookeeper的日志(/var/log/zookeeper/),發現了報錯。
報錯現象:
2019-05-15 15:03:25,981 INFO org.apache.zookeeper.server.NIOServerCnxnFactory: Accepted socket connection from /192.168.52.26:36948 2019-05-15 15:03:25,982 INFO org.apache.zookeeper.server.ZooKeeperServer: Client attempting to establish new session at /192.168.52.26:36948 2019-05-15 15:03:25,984 INFO org.apache.zookeeper.server.ZooKeeperServer: Established session 0x36ab52d38c20b20 with negotiated timeout 30000 for client /192.168.52.26:36948 2019-05-15 15:03:26,042 WARN org.apache.zookeeper.server.NIOServerCnxn: caught end of stream exception EndOfStreamException: Unable to read additional data from client sessionid 0x36ab52d38c20b20, likely client has closed socket at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:231) at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208) at java.lang.Thread.run(Thread.java:748) 2019-05-15 15:03:26,043 INFO org.apache.zookeeper.server.NIOServerCnxn: Closed socket connection for client /192.168.52.26:36948 which had sessionid 0x36ab52d38c20b20 2019-05-15 15:04:11,075 INFO org.apache.zookeeper.server.NIOServerCnxnFactory: Accepted socket connection from /192.168.52.26:41510
報錯原因:
原因不明。
但是這個報錯肯定和kafka報錯有關系。
網上的報錯解決辦法都是加長zookeeper對kafka的心跳檢測時間,但是這並不能解決問題。可能是因為kafka的broker已經死掉了,所以心跳檢測會失敗。
報錯解決:
這個報錯其實不算是一個嚴重報錯,它是由zookeeper管理的其它組件報錯引起的,只要把對應報錯組件的報錯解決,此報錯就會消失。(以上內容全為個人推測)