先说zookeeper的日志是二进制格式,需要通过zookeeper的jar包里的工具才能查看。

zookeeper的pom:

    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <version>3.4.8</version>
    </dependency>

查看日志可以通过下面的代码:

LogFormatter.main(new String[] {"/Users/xxx/Downloads/inte-zookeeper.log/version-2/log.c0012b220"});

在看到日志之后,发现出现问题的日志前后有大量的 “error -110” 错误!
这里写图片描述

顺着这条线,找到了zookeeper的mail list的相关的描述:
http://comments.gmane.org/gmane.comp.java.hadoop.zookeeper.user/8166

整理一下这个mail list结论:

  1. 这个错误一般在crc校验出错才会出
  2. 错误的原因是写入(setData)的数据过大导致
    refer:
    这里写图片描述
  3. 出现问题的OP就是setData之后第一次出现 “error -110”的OP
  4. 貌似调整 jute.maxbuffer 的配置会有帮助,我没验证过
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐