zookeeper不断收到警告:“捕获到流结束异常”

i1icjdpr  于 2021-06-04  发布在  Flume
关注(0)|答案(1)|浏览(515)

我现在使用的是一个cdh-5.3.1集群,其中三个zookeeper示例位于三个IP中:

133.0.127.40 n1
133.0.127.42 n2
133.0.127.44 n3

启动时一切正常,但最近我注意到节点n2不断收到警告:

caught end of stream exception

EndOfStreamException: Unable to read additional data from client sessionid**0x0**, 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:722)

它每秒钟发生一次,而且只发生在n2上,而n1和n3是正常的。我仍然可以使用hbase shell扫描我的表,使用solrwebui进行查询。但我不能启动flume代理,整个过程都会在这一步停止:

Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog

jetty-6.1.26.cloudera.4

Started SelectChannelConnector@0.0.0.0:41414.

几分钟后,我从cloudera管理器得到警告,flume代理超出了文件描述符的阈值。
有人知道出了什么问题吗?提前谢谢。

u5rb5r59

u5rb5r591#

我记得在zk中看到过类似的错误(当然不是flume)。我认为当时的问题与节点上存储和/或传输到客户端的大量数据有关。在zoo.cfg中考虑调整的事项:
限制 autopurge.snapRetainCount ,例如,将其设置为10
autopurge.purgeInterval 例如,2(小时)
如果zk客户机(flume?)正在将大型znode流到zk集群或从zk集群流出来,您可能需要设置java system属性 jute.maxbuffer 在客户端jvm上,也可能在服务器节点上,设置为足够大的值。我相信这个属性的默认值是1m。为你的工作量确定合适的值恐怕是一个反复试验的练习!

相关问题