Java hadoop覆盖每个作业的log4j.properties

Java hadoop覆盖每个作业的log4j.properties,java,hadoop,logging,log4j,Java,Hadoop,Logging,Log4j,是否可以覆盖每个作业的log4j属性? 我有一个多步骤程序(管道),它运行一些hadoop作业,但前后还执行一些其他步骤 如果我使用java命令运行我的程序(java-jar my_program.jar) 然后运行正常,但我收到警告: 无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类 如果我使用hadoop命令运行我的程序(hadoop jar my_program.jar) 然后加载默认的hadoop log4j.properties 在我的程序中,我将有关步骤执行

是否可以覆盖每个作业的log4j属性?
我有一个多步骤程序(管道),它运行一些hadoop作业
,但前后还执行一些其他步骤

如果我使用java命令运行我的程序(
java-jar my_program.jar
) 然后运行正常,但我收到警告:
无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类

如果我使用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运行我的程序时,警告
无法为您的平台加载本机hadoop库…
不再出现。来源描述:

有人知道如何覆盖每个作业的log4j属性吗?基于此答案:
我使用以下代码在启动hadoop作业的主代码中加载自定义的
log4j.properties
(在本例中,它实际上覆盖了hadoop log4j配置):


它不会覆盖datanodes中的log4j属性—仅在启动hadoop作业的程序中—这正是我想要的。

我找到了如何解决警告—上面更新的问题中的详细信息
String log4jPropertiesFilePath = "path/to/my/custom/log4j.properties";
PropertyConfigurator.configure(log4jPropertiesFilePath);