2012-01-23 117 views
6

我試過很多方法將Hadoop中的日誌記錄級別設置爲WARN,但每次都失敗。 首先,我嘗試通過在每個地方簡單地用「WARN」替換「INFO」來配置log4j.properties文件。沒有結果。將Hadoop中的日誌記錄級別設置爲WARN

接下來,我想給Hadoop的UNIX(按照http://hadoop.apache.org/common/docs/current/commands_manual.html#daemonlog)命令:

$ Hadoop的daemonlog -setlevel

有沒有可能是一個真正有改變的源代碼,使其工作?日誌記錄通常很容易控制,在大多數情況下通常會對日誌記錄屬性進行輕微調整...

+0

「無處不在」是什麼意思?你是說使用'log4j.logger.org.apache.hadoop = WARN'不會做你想做的事嗎?除非你確定所有東西基本上都能正常工作,否則我也會提高把水平提高到WARN的水平。 –

+1

例如,我的log4j.properties文件現在包含以下幾行:log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit = WARN hadoop.metrics.log.level = WARN log4j.logger。 org.apache.hadoop.mapred.JobTracker = WARN log4j.logger.org.apache.hadoop.mapred.TaskTracker = WARN log4j.logger.org.apache。hadoop.fs.FSNamesystem = WARN log4j.logger.org.apache.hadoop.metrics2 = $ {hadoop.metrics.log.level} – chebychev2000

回答

2

可以通過修改conf/log4j.properties配置文件中的hadoop.root.logger屬性來調整默認日誌級別。請注意,您必須爲集羣中的每個節點執行此操作。

實施例線conf/log4j.properties

hadoop.root.logger=WARN,console 
+0

並且在配置更改之後還應該重新啓動節點... – yair

4

我寧願用

HADOOP_ROOT_LOGGER = WARN,DRFA

在hadoop-env.sh

或者可以使用hadoop.root.logger in log4j.properties

DRFA將允許日誌進入文件附加程序而不是控制檯 - > System.err/out。

+0

用於hadoop cli可以啓用該會話的日誌級別: {code} export HADOOP_ROOT_LOGGER = DEBUG,console hadoop fs -ls/ {code} – selle

2

Apache hadoop文檔有點誤導。如果您正在調試問題,則可以使用以下步驟即時更改日誌級別。你應該提到包名而不是文件名。

實施例:對於的Namenode:hadoop的daemonlog -setlevel LXV-的centos-01:50070 org.apache.hadoop.hdfs.server.namenode DEBUG

對於ResourceManager的紗線daemonlog -setlevel LXV-的centos-01:8088的有機.apache.hadoop.yarn.server.resourcemanager DEBUG

當您重新啓動進程時,上述設置將消失。這是一個調試問題的臨時解決方案。

1

要動態更改日誌級別,以便不需要重新啓動守護程序,請使用hadoop daemonlog實用程序。

hadoop daemonlog -setlevel hostname:port className logLevel 

例如將datanode日誌的日誌級別更改爲WARN。

hadoop daemonlog -setlevel hostname:50075 org.apache.hadoop.hdfs.server.datanode.DataNode WARN 
相關問題