flume+kafka 性能问题

发布于 2021-11-27 06:14:19 字数 1408 浏览 885 评论 14

应用场景:

在使用spoolDir作为flume source,kafka作为sink将文件内容缓存到kafka中。

问题:

发现flume + kafka在信息缓存的性能上不是很好,现在也分不清楚是谁的原因。读取一个80万的文件,大概需要5分钟左右,才全部缓存到kafka(单机环境测试)。

flume具体配置文件如下,kafka没做过优化,创建的topic (partiton 6,replication 1):

#agent section
producer.sources = s
producer.channels = c
producer.sinks = r

#source section
#producer.sources.s.type = seq
#producer.sources.s.channels = c

producer.sources.s.type =spooldir 
producer.sources.s.spoolDir = /home/data
producer.sources.s.channels = c
producer.sources.s.deserializer.maxLineLength = 90

# Each sink's type must be defined
producer.sinks.r.type = org.apache.flume.plugins.KafkaSink
producer.sinks.r.metadata.broker.list=127.0.0.1:9092
producer.sinks.r.partition.key=0
producer.sinks.r.partitioner.class=org.apache.flume.plugins.SinglePartition
producer.sinks.r.serializer.class=kafka.serializer.StringEncoder
producer.sinks.r.request.required.acks=0
producer.sinks.r.max.message.size=1000000
producer.sinks.r.producer.type=async
producer.sinks.r.custom.encoding=UTF-8
producer.sinks.r.custom.topic.name=testToptic

#Specify the channel the sink should use
producer.sinks.r.channel = c

# Each channel's type is defined.
producer.channels.c.type = memory
producer.channels.c.capacity = 1000000
producer.channels.c.transactionCapacity = 1000000
急求各位大大指教。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

悲喜皆因你 2021-12-01 05:08:16

楼主问题解决了吗?可以分享下,解决方案吗?

奢华的一滴泪 2021-12-01 05:08:14

对,主要就是配置conf/log4j.properties中log级别

无人问我粥可暖 2021-12-01 05:08:13

回复
果然是这个问题

泪冰清 2021-12-01 05:08:07

回复
日志调整后解决了呗

南冥有猫 2021-12-01 05:08:02

根据实际机器内存环境和每条消息字节长度综合看一下。

猫烠⑼条掵仅有一顆心 2021-12-01 05:05:28

回复
设置10000可以正常跑。就是处理太慢了。设置10万就报gc错误了。在flume-evn的虚拟机参数把内存改为2g的还是报。这咋解决呢

千纸鹤带着心事 2021-12-01 05:03:04

producer.channels.c.type = memory

producer.channels.c.capacity = 1000000

producer.channels.c.transactionCapacity = 1000000

producer.channels.c.capacity =1000000这个我设1000000会报内存溢出,gc出问题。请问你虚拟机运行参数怎么配置的

够钟 2021-12-01 05:00:39

producer.sinks.r.partition.key,producer.sinks.r.partitioner.class这两项配置去掉,producer.sinks.r.producer.type配置成async,flume日志级别配置成error再试一下。

路还长,别太狂 2021-12-01 04:39:02

就是beyondj2ee写的一个插件,源码没动过

瀞厅☆埖开 2021-12-01 02:26:26

@JinP 自己写个吧,很简单。那样容易盘查问题,你现在能确定是flume的syslog慢,还是flume to kafka慢吗?

凡尘雨 2021-12-01 00:17:22

回复
sink为null时,80万文件40s左右读完。kafka直接调用API进行数据缓存,使用async方式一百万大概30多秒,一结合起来就慢,问题有些头疼

辞别 2021-11-30 19:14:48

kafka 的sink是你自己写的吗?代码贴上看看。

勿忘初心 2021-11-30 15:32:04

是信息量太少还是问题不典型呀?怎么没人回复呢

勿忘初心 2021-11-30 00:50:07

把partition.key和partition.class配置去掉,调整flume日志级别为ERROR级,处理性能提升不少。80万数据不到10S处理完成。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文