Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ApacheFlume将日志从MapReduce作业写入HDFS_Java_Hadoop_Log4j_Hdfs_Flume - Fatal编程技术网

Java 使用ApacheFlume将日志从MapReduce作业写入HDFS

Java 使用ApacheFlume将日志从MapReduce作业写入HDFS,java,hadoop,log4j,hdfs,flume,Java,Hadoop,Log4j,Hdfs,Flume,我正在尝试将MapReduce作业中的日志写入HDFS。我正在使用ApacheFlumeNG 我的环境: 爪哇6 Log4j 1.2.16 Apache Hadoop 2.3.0 Apache Flume 1.4.0 问题1 我已经创建了简单的MapReduce作业作为Maven项目,并且在我的类中使用了logger.info。作业完成后,我可以在syslog文件中查看日志 我想创建自己的log4j配置,并将日志写入控制台。 我该怎么做?我必须将log4j.properties文件放在哪里?我应

我正在尝试将MapReduce作业中的日志写入HDFS。我正在使用ApacheFlumeNG

我的环境:

爪哇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方法中的消息

使用ApacheFlumeNG是否可以实现这一点? 或者我可以更容易一点吗

我想在Log4j.properties中实现Flume Log4j Appender,例如在本地主机44444端口上。在Flume NG配置中,我希望对Avro源使用相同的地址,并通过内存通道将日志写入HDFS

这是个好办法吗

问题1

哪个控制台?请记住,任务运行在不同的JVM上。因此,没有单一的控制台。如果您希望从驱动程序获取日志,那么这将是一个简单的配置

问题2

您尝试的通常是一个好的解决方案。水槽附加器可在log4j项目中使用:


:或其他选项:

非常感谢。关于问题2-我应该把log4j.properties和我的Flume Appender放在哪里?在我的Maven项目中还是在hadoop/etc/log4j.properties文件中?