我正在尝试将MapReduce作业中的日志写入HDFS。我使用的是Apache Flume NG。
我的环境:
问题#1
我已经创建了简单的MapReduce作业作为Maven项目,并且在我的类中使用了 logger.info()。
作业完成后,我可以在系统日志文件中看到我的日志。
我想创建自己的log4j配置并将日志写入控制台。我该怎么做?我必须在哪里放置log4j.properties文件?我应该修改一般的Hadoop conf/log4j.properties吗?
问题#2
我想将日志写入HDFS。但我不想使用tail-f
命令来编写syslog文件的内容。我只想从我的类中写日志-来自<code>logger的消息。info()方法。
使用Apache Flume NG是否可以做到这一点?或者我可以更容易地做到这一点?
我有一个想法来实现Flume Log4j Appender在log4j.properties(例如在localhost,44444端口)。在Flume NG配置中,我想对Avro源代码使用相同的地址,并通过内存通道将日志写入HDFS。
这是一个好的解决方案吗?
问题#1
哪个控制台?请记住,任务在不同的JVM上运行。所以没有单一的控制台。如果您想从驱动程序中获取日志,那么这将是一个简单的配置。
问题#2
你所尝试的通常是一个好的解决方案。log4j项目中有Flume Appender:Log4J 2 Flume Appender
1:http://logging.apache.org/log4j/2.x/manual/appenders.html#FlumeAppender 或其他选项:风筝SDK
在HDFS中写入日志文件的最佳方式是什么?我正在尝试配置Apache Flume,并尝试配置能够为我提供数据可靠性的源。我试图配置“exec”,后来也查看了“spooldir”,但flume.apache上的以下文档。org对我的意图表示怀疑- 执行来源: 最常请求的功能之一是像“tail -F file_name”这样的用例,其中应用程序写入磁盘上的日志文件,Flume 尾随文件,将每一行作为事
在中有一个,可以将日志写入到。 我需要在中使用相同的功能,但我还没有找到这样做的选项。有人知道如何使用实现同样的效果吗?
我创建了以下groovy脚本,以展示如何使用简单的注释将日志字段注入我们的类 当我运行groovy脚本时,我得到以下结果(在GROOVY CONSOLE上) 请告知我们如何将结果打印到WIN机器中的日志文件中,以及需要向groovy脚本中添加什么才能启用它? 例如: 日志文件 C: \程序文件\日志\我的。非常棒。日志 (应包含结果:)
我决定使用slf4j而不是Java自己的日志记录。我已经成功地使用SLF4J登录到控制台。但我不知道如何将其写入日志文件。日志文件将帮助我们收集运行时可能出现的错误。 我通过这样做来实现slf4j, 私有静态最终org.slf4j.LOGGER LOGGER=org.slf4j.loggerfactory.getlogger(class1.class); PropertyConfigurator.
问题内容: 我正在尝试使用Go写入日志文件。 我尝试了几种方法,但都失败了。这是我尝试过的: 日志文件被创建,但是没有任何打印或附加到该文件。为什么? 问题答案: 过去的工作方式一定不同,但这对我有用: 基于Go文档,不能用于,因为它会打开文件“供阅读:” 打开命名文件以供读取。如果成功,则可以使用返回文件上的方法进行读取;关联的文件描述符具有mode 。如果有错误,它将是类型。 编辑 检查后移至
我有一个设置,其中docker容器使用日志驱动程序来写入它们的日志。目前日志中的日志行被转发到主机上运行的rsyslog,但syslog行上的应用程序名称显示为。 作为一种解决方法,我想将日志元数据中的字段写入syslog中出现的行中,这样我就可以确定在主机的syslog被发送到syslog聚合服务器之后,哪个容器写入了哪一行。 有什么建议吗?