【发布时间】:2014-04-14 18:59:01
【问题描述】:
我正在尝试将 MapReduce 作业中的日志写入 HDFS。我正在使用 Apache Flume NG。
我的环境:
- Java 6
- Log4j 1.2.16
- Apache Hadoop 2.3.0
- Apache Flume 1.4.0
问题 #1
我创建了简单的 MapReduce 作业作为 Maven 项目,并且在我的课程中使用了 logger.info()。当我的工作完成后,我可以在 syslog 文件中看到我的日志。
我想创建自己的 log4j 配置并将日志也写入控制台。 我怎样才能做到这一点?我必须将 log4j.properties 文件放在哪里?我应该修改通用 Hadoop conf/log4j.properties 吗?
问题 #2
我想将日志写入 HDFS。但我不想使用tail -f 命令并写入syslog 文件的内容。我只想从我的课程中写入日志 - 来自logger.info() 方法的消息。
这可能使用 Apache Flume NG 吗? 或者也许我可以更轻松地做到这一点?
我有一个想法在 log4j.properties 中实现 Flume Log4j Appender(例如在 localhost,44444 端口上)。在 Flume NG 配置中,我想为 Avro 源使用相同的地址,并通过内存通道将日志写入 HDFS。
这是好的解决方案吗?
【问题讨论】:
标签: java hadoop log4j hdfs flume