随笔-314  评论-209  文章-0  trackbacks-0
一、前言
    早上醒来打开微信,同事反馈kafka集群从昨天凌晨开始写入频繁失败,赶紧打开电脑查看了kafka集群的机器监控,日志信息,发现其中一个节点的集群负载从昨天凌晨突然掉下来了,和同事反馈的时间点大概一致,于是乎就登录服务器开始干活。
二、排错
1、查看机器监控,看是否能大概定位是哪个节点有异常
技术分享
2、根据机器监控大概定位到其中一个异常节点,登录服务器查看kafka日志,发现有报错日志,并且日志就停留在这个这个时间点:
[2017-06-01 16:59:59,851] error processor got uncaught exception. (kafka.network.processor)
java.lang.outofmemoryerror: direct buffer memory
        at java.nio.bits.reservememory(bits.java:658)
        at java.nio.directbytebuffer.(directbytebuffer.java:123)
        at java.nio.bytebuffer.allocatedirect(bytebuffer.java:306)
        at sun.nio.ch.util.gettemporarydirectbuffer(util.java:174)
        at sun.nio.ch.ioutil.read(ioutil.java:195)
        at sun.nio.ch.socketchannelimpl.read(socketchannelimpl.java:379)
        at org.apache.kafka.common.network.plaintexttransportlayer.read(plaintexttransportlayer.java:108)
        at org.apache.kafka.common.network.networkreceive.readfromreadablechannel(networkreceive.java:97)
        at org.apache.kafka.common.network.networkreceive.readfrom(networkreceive.java:71)
        at org.apache.kafka.common.network.kafkachannel.receive(kafkachannel.java:160)
        at org.apache.kafka.common.network.kafkachannel.read(kafkachannel.java:141)
        at org.apache.kafka.common.network.selector.poll(selector.java:286)
        at kafka.network.processor.run(socketserver.scala:413)3、查看kafka进程和监听端口情况,发现都正常,尼玛假死了
ps -ef |grep kafka        ## 查看kafka的进程
netstat -ntlp |grep 9092  ##9092kafka的监听端口4、既然已经假死了,只能重启了
ps -ef |grep kafka |grep -v grep |awk ‘{print $2}‘  | xargs kill -9  
/usr/local/kafka/bin;nohup ./kafka-server-start.sh ../config/server.properties &5、重启后在观察该节点的kafka日志,在一顿index重建之后,上面的报错信息在疯狂的刷,最后谷歌一番,解决了该问题
三、凯发天生赢家一触即发官网的解决方案:
/usr/local/kafka/binkafka-run-class.sh去掉
-xx: disableexplicitgc添加
-xx:maxdirectmemorysize=512m在一次重启kafka,问题解决。
posted on 2018-03-08 16:35 xzc 阅读(2054) 评论(0)  编辑  收藏 所属分类: hadoop
网站地图