每个作业的 hadoop 覆盖 log4j.properties
hadoop override log4j.properties per job
是否可以覆盖每个作业的 log4j 属性?
我有一个多步骤程序(管道),运行 有一些 hadoop 作业
但在它之前和之后还执行其他一些步骤。
如果我 运行 我的程序使用 java 命令 (java -jar my_program.jar
)
然后它 运行 没问题,但我收到警告:
Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
如果我 运行 我的程序使用 hadoop 命令 (hadoop jar my_program.jar
)
然后加载默认的 hadoop log4j.properties
在我的程序中,我将有关步骤执行的信息记录到特定文件中。我不需要来自 hadoop map/reduce 任务的日志。我需要我的程序的日志,因为它执行许多其他任务。
我应该担心那个警告吗?
如何覆盖每个作业的 log4j 属性以使用我的自定义 log4j.properties?
从我的管道中保留日志
我正在使用 hadoop v1.0.4
编辑:
我发现导出 LD_LIBRARY_PATH
后,当 运行 使用命令 java -jar my_program.jar
连接我的程序时,警告 Unable to load native-hadoop library for your platform...
不再出现。来源说明:
http://balanceandbreath.blogspot.ca/2013/01/utilnativecodeloader-unable-to-load.html
有人知道如何覆盖每个作业的 log4j 属性吗?
基于这个答案:
我正在使用以下代码在启动 hadoop 作业的主代码中加载我的自定义 log4j.properties
(在这种情况下,它实际上覆盖了 hadoop log4j 配置):
String log4jPropertiesFilePath = "path/to/my/custom/log4j.properties";
PropertyConfigurator.configure(log4jPropertiesFilePath);
它不会覆盖数据节点中的 log4j 属性 - 仅在启动 hadoop 作业的程序中 - 这正是我想要的。
是否可以覆盖每个作业的 log4j 属性?
我有一个多步骤程序(管道),运行 有一些 hadoop 作业
但在它之前和之后还执行其他一些步骤。
如果我 运行 我的程序使用 java 命令 (java -jar my_program.jar
)
然后它 运行 没问题,但我收到警告:
Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
如果我 运行 我的程序使用 hadoop 命令 (hadoop jar my_program.jar
)
然后加载默认的 hadoop log4j.properties
在我的程序中,我将有关步骤执行的信息记录到特定文件中。我不需要来自 hadoop map/reduce 任务的日志。我需要我的程序的日志,因为它执行许多其他任务。
我应该担心那个警告吗?
如何覆盖每个作业的 log4j 属性以使用我的自定义 log4j.properties?
我正在使用 hadoop v1.0.4
编辑:
我发现导出 LD_LIBRARY_PATH
后,当 运行 使用命令 java -jar my_program.jar
连接我的程序时,警告 Unable to load native-hadoop library for your platform...
不再出现。来源说明:
http://balanceandbreath.blogspot.ca/2013/01/utilnativecodeloader-unable-to-load.html
有人知道如何覆盖每个作业的 log4j 属性吗?
基于这个答案:
我正在使用以下代码在启动 hadoop 作业的主代码中加载我的自定义 log4j.properties
(在这种情况下,它实际上覆盖了 hadoop log4j 配置):
String log4jPropertiesFilePath = "path/to/my/custom/log4j.properties";
PropertyConfigurator.configure(log4jPropertiesFilePath);
它不会覆盖数据节点中的 log4j 属性 - 仅在启动 hadoop 作业的程序中 - 这正是我想要的。