2017-08-25 1 views
0

ich die Protokollebene eines MR Job zu ändern versuchen zu ändern, habe ich den folgenden Befehl ein:Wie die Protokollebene eines MR Job

hadoop jar appMR.jar MainMR -Dmapreduce.map.log.level=DEBUG <args...> 

aber die -Dmapreduce.map.log.level=DEBUG geht als erstes Argument, um den Job .
Gibt es eine Möglichkeit, dies nur für einen bestimmten MR-Auftrag zu tun, ohne die Ebene in der log4j-Eigenschaftendatei zu ändern?

Antwort

0

Sie nur die -Dname = Wertform, wenn Ihre Haupt-Klasse implementiert die Werkzeugschnittstelle verwenden können und wird über das ToolRunner Dienstprogramm aufgerufen. Überprüfen Sie das Werkzeug javadoc Beispiel und modellieren Ihre Implementierung drum herum: http://archive.cloudera.com/cdh5/cdh/5/hadoop/api/org/apache/hadoop/util/Tool.html (Harsh J)

http://community.cloudera.com/t5/Batch-Processing-and-Workflow/How-to-change-the-log-level-of-a-MR-job/m-p/59245#M3264?eid=3&aid=1

0

können Sie verwenden:

$ export HADOOP_ROOT_LOGGER="DEBUG,console" 

Dann wird Ihr hadoop jar Befehl ausführen.

https://wiki.apache.org/hadoop/HowToConfigure (Unter Umgebungsvariablen) enter image description here

+0

Dadurch ändert sich die Protokollebene für Hadoop dh es Informationen über die Kommunikation zwischen NameNode und DataNode protokolliert. Ich möchte den Log-Level von MapReduce (Mapper/Reducer) ändern. –

+0

Was hast du eigentlich gemacht? Das Hadoop-Projekt umfasst HDFS, MapReduce und YARN, sodass der Logger für alle Komponenten funktioniert. Sie können dies überprüfen, indem Sie ein Beispieljar ausführen und mit den HADOOP_ROOT_LOGGER-Einstellungen herumspielen. – tk421

Verwandte Themen