配置flume以监视目录中的新日志

gg58donl  于 2021-06-04  发布在  Flume
关注(0)|答案(1)|浏览(377)

我正在尝试配置flume来监视hadoop任务日志目录,所以当一个新作业启动时,任务日志会流式传输到flume,它会过滤一些事件日志并将其发送到某个地方(当作业仍在运行时)。
是否有可以使用的Flume源?类似exec source tail,但flume代理启动时不知道完整的文件路径。我认为spool目录不能在这里使用,因为我需要在日志写入时扫描它们。

4xrmg8kj

4xrmg8kj1#

是的,事实上spool源将完成这项工作。下面是一个示例配置:

SpoolAgent.sources = MySpooler
SpoolAgent.channels = MemChannel
SpoolAgent.sinks = HDFS

SpoolAgent.channels.MemChannel.type = memory
SpoolAgent.channels.MemChannel.capacity = 500
SpoolAgent.channels.MemChannel.transactionCapacity = 200

SpoolAgent.sources.MySpooler.channels = MemChannel
SpoolAgent.sources.MySpooler.type = spooldir
SpoolAgent.sources.MySpooler.spoolDir = /var/log/hadoop/
SpoolAgent.sources.MySpooler.fileHeader = true

SpoolAgent.sinks.HDFS.channel = MemChannel
SpoolAgent.sinks.HDFS.type = hdfs
SpoolAgent.sinks.HDFS.hdfs.path = hdfs://cluster/logs/%{file}
SpoolAgent.sinks.HDFS.hdfs.fileType = DataStream
SpoolAgent.sinks.HDFS.hdfs.writeFormat = Text
SpoolAgent.sinks.HDFS.hdfs.batchSize = 100
SpoolAgent.sinks.HDFS.hdfs.rollSize = 0
SpoolAgent.sinks.HDFS.hdfs.rollCount = 0
SpoolAgent.sinks.HDFS.hdfs.rollInterval = 3000

fileheader prop将设置一个带有文件名的头,该文件名在hdfs接收器路径中引用。这将把事件路由到hdfs中的相应文件。

相关问题