我正在使用flume file_roll接收器类型通过syslogTCP源类型接收大量数据(速率约为10000个事件/秒)。但是,将数据推送到syslogTCP端口的进程( Spark 流作业)在15-20分钟内接收了150万个事件后就卡住了。我还在运行flume-ng代理的linux框中观察到一些文件描述符问题。

以下是我正在使用的水槽配置:

agent2.sources = r1
agent2.channels = c1
agent2.sinks = f1

agent2.sources.r1.type = syslogtcp
agent2.sources.r1.bind = i-170d29de.aws.amgen.com
agent2.sources.r1.port = 44442

agent2.channels.c1.type = memory
agent2.channels.c1.capacity = 1000000000
agent2.channels.c1.transactionCapacity = 40000

agent2.sinks.f1.type = file_roll
agent2.sinks.f1.sink.directory = /opt/app/svc-edl-ops-ngmp-dev/rdas/flume_output
agent2.sinks.f1.sink.rollInterval = 300
agent2.sinks.f1.sink.rollSize = 104857600
agent2.sinks.f1.sink.rollCount = 0

agent2.sources.r1.channels = c1
agent2.sinks.f1.channel = c1

由于性能问题,主要是由于摄取率高,所以我无法使用HDFS接收器类型。

最佳答案

这是我的坏事。我正在使用控制台日志记录,有时由于连接问题,腻子终端被冻结了。导致整个水槽堵塞。
通过重定向水槽控制台输出或具有将输出写入控制台的log4j.property,已解决了冻结问题。

关于hadoop - 几分钟后使用Flume file_roll接收器类型卡住了,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40361265/

10-13 04:21