Flume使用Kafka Sink导致CPU过高的问题

在日志收集服务器上使用Flume(1.6)的Kafka Sink将日志数据发送至Kafka,在Flume Agent启动之后,发现每个Agent的CPU使用率都非常高,而我们需要在每台机器上启动多个Flume Agent来收集不同类型的日志,如果每个Agent都这样,那肯定会把机器的CPU吃满了,刚开始使用jstack定位到是org.apache.flume.sink.kafka.process()的问题,后来google了下,果然是这个代码有问题。找到一个ISSUES: https://issues.apache.org/jira/browse/FLUME-2632

发现该问题在Flume1.7中fix掉了,接着找到github中Flume1.7的代码,具体就是:

https://github.com/apache/flume/blob/trunk/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSink.java

使用该代码编译后替换掉flume-ng-kafka-sink-1.6.0.jar中的KafkaSink.class,重启Flume Agent之后,问题解决。

kafka sink

图中point1是运行了一个flume agent;

在point2时刻,我启动了第二个flume agent,CPU一下上来一截;

在point3时候,我使用fix之后的flume-ng-kafka-sink-1.6.0.jar,前后重启了两个flume agent,CPU使用率下降了很多。

接下来继续观察CPU使用情况以及收集的数据是否异常。


转载于:https://my.oschina.net/u/2311010/blog/620071

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值