[英]Using Apache Flume to write logs from MapReduce job into HDFS
我正在尝试将MapReduce作业的日志写入HDFS。 我正在使用Apache Flume NG。
我的环境:
问题1
我已经将简单的MapReduce作业创建为Maven项目,并且在类中使用了logger.info()
。 工作完成后,我可以在syslog文件中看到我的日志。
我想创建自己的log4j配置并将日志也写入控制台。 我怎样才能做到这一点? 我必须在哪里放置log4j.properties文件? 我应该修改常规的Hadoop conf / log4j.properties吗?
问题二
我想将日志写入HDFS。 但是我不想使用tail -f
命令并写入syslog文件的内容。 我只想从我的类写日志-来自logger.info()
方法的消息。
使用Apache Flume NG有可能吗? 也许我可以更轻松地做到这一点?
我有一个想法在log4j.properties中实现Flume Log4j Appender(例如在localhost,44444端口上)。 在Flume NG配置中,我想对Avro源使用相同的地址,并通过内存通道将日志写入HDFS。
这是好的解决方案吗?
问题1
哪个控制台? 请记住,任务在不同的JVM上运行。 因此,没有单个控制台。 如果要从驱动程序中获取日志,那将是简单的配置。
问题二
您尝试的通常是一个很好的解决方案。 Flume Appender在log4j项目中可用: Log4J 2 Flume Appender
1 : http : //logging.apache.org/log4j/2.x/manual/appenders.html#FlumeAppender或其他选项: Kite SDK
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.