我正在尝试配置flume来监视hadoop任务日志目录,所以当一个新作业启动时,任务日志会流式传输到flume,它会过滤一些事件日志并将其发送到某个地方(当作业仍在运行时)。是否有可以使用的Flume源?类似exec source tail,但flume代理启动时不知道完整的文件路径。我认为spool目录不能在这里使用,因为我需要在日志写入时扫描它们。
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中的相应文件。
1条答案
按热度按时间4xrmg8kj1#
是的,事实上spool源将完成这项工作。下面是一个示例配置:
fileheader prop将设置一个带有文件名的头,该文件名在hdfs接收器路径中引用。这将把事件路由到hdfs中的相应文件。