配置flume来查看新日志的目录

时间:2015-01-14 02:37:48

标签: flume

我正在尝试配置flume来监视hadoop任务日志目录,因此当新任务启动时,任务日志将流式传输到水槽并过滤一些事件日志并将其发送到某处(当作业仍在运行时)。

是否有可以使用的Flume源?像exec source tail这样的东西,但是当flume agent启动时,不知道完整的文件路径。我认为这里不能使用假脱机目录,因为我需要在写入日志时扫描它们。

1 个答案:

答案 0 :(得分:4)

是的,实际上假脱机源将完成这项工作。这是一个示例配置:

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-Sink路径中引用。这会将事件路由到HDFS中的相应文件。