异常信息:
Zookeeper:Unable to read additional data from client sessionid 0x00, likely client has closed socket
2018-03-20 23:34:01,887 [myid:99] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /10.121.82.229:33749
2018-03-20 23:34:01,887 [myid:99] - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@793] - Connection request from old client /10.121.82.229:33749; will be dropped if server is in r-o mode
2018-03-20 23:34:01,887 [myid:99] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@839] - Client attempting to establish new session at /10.121.82.229:33749
2018-03-20 23:34:01,890 [myid:99] - INFO [CommitProcessor:99:ZooKeeperServer@595] - Established session 0x6362257b44e5068d with negotiated timeout 10000 for client /10.121.82.229:33749
2018-03-20 23:34:21,859 [myid:99] - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@349] - caught end of stream exception
EndOfStreamException: Unable to read additional data from client sessionid 0x6362257b44e5068d, likely client has closed socket
at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:220)
at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
at java.lang.Thread.run(Thread.java:745)
2018-03-20 23:34:21,860 [myid:99] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1001] - Closed socket connection for client /10.121.82.229:33749 which had sessionid 0x6362257b44e5068d
问题分析:
因为我们的使用场景是把所有影像资料存储在hbase的一张表中,所以单表的数据量比较大,元数据比较多,导致元数据检索的时间比较长,在超时时间内, zookeeper还没有读完Consumer的数据,连接就被consumer断开了。
解决方案:
初始化Zookeeper连接时,将接收超时参数值调整大一些即可(tickTime2000改为10000),默认是毫秒(ms)