繁体   English   中英

使用Apache Flume将日志从MapReduce作业写入HDFS

[英]Using Apache Flume to write logs from MapReduce job into HDFS

我正在尝试将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吗?

问题二

我想将日志写入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

1http : //logging.apache.org/log4j/2.x/manual/appenders.html#FlumeAppender或其他选项: Kite SDK

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM