2013-05-07 12 views
9

Ich arbeite mit PigLatin, benutze Grunzen, und jedes Mal, wenn ich Sachen wegschütte, wird meine Konsole mit blah blah, blah non-info, ist es eine Möglichkeit, all das zu verdrängen?Wie kann ich das Aufblähen nutzloser Informationen unterdrücken, wenn ich den Befehl DUMP benutze, während ich grunt über 'pig -x local' verwende?

 
grunt> A = LOAD 'testingData' USING PigStorage(':'); dump A; 

2013-05-06 19: 42: 04.146 [main] INFO org.apache.pig.tools.pigstats.ScriptState - Schwein im Skript verwendeten Funktionen: UNKNOWN
2013.05.06 19 : 42: 04.147 [main] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler - Schwellenwert für Dateiverkettung: 100 optimistisch? falsch ...
...
--- andere wie 50 Zeilen nutzlos Kontext hier Junk clobbering ... bis --- ...
...
org.apache.pig .backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Erfolg!

jetzt meine wie 4 Zeilen von Informationen suchen:

 
(daemon,*,1,1,System Services,/var/root,/usr/bin/false) 
(uucp,*,,,/var/spool/uucp,/usr/sbin/uucico) 
(taskgated,*,13,13,Task Gate Daemon,/var/empty,/usr/bin/false) 
(networkd,*,24,24,Network Services,/var/empty,/usr/bin/false) 
(installassistant,*,25,25,/usr/bin/false)
grunt>

---> wenn es offensichtlich Fehler, fein lotsa Info hilfreich, aber nicht, wenn es funktioniert im Grunde groß.

+0

Ich versuchte das oben, es funktioniert nicht ... Jedoch funktioniert dieser Link http: // stackoverflow.com/questions/16627748/pig-batch-mode-how-to-set-logging-level-zu-ausblenden-info-log-nachrichten – Rudra

Antwort

7

Sie müssen die log4j-Eigenschaften festlegen. Zum Beispiel:

$PIG_HOME/conf/pig.properties : 
enable: 
# log4jconf=./conf/log4j.properties 

rename: log4j.properties.template -> log4j.properties 

log4j.properties : 
set info to error: 
log4j.logger.org.apache.pig=info, A 

Sie auch auch die Hadoop bezogenen Protokollebene gesetzt werden:

log4j.logger.org.apache.hadoop = error, A 
+2

Es scheint ein [bug] (https://issues.apache.org/jira/browse/PIG-3275) in Pig 0.12.0, was dazu führt, dass dies fehlschlägt. – Xaero182

+0

@ Xaero182 Ich denke, dass 0.12.0 logback statt log4j verwendet. Versuchen Sie, diese JAVA OPT: -Dlogback.configurationFile =/Pfad/zu/Ihrer/logback.xml Datei hinzuzufügen. – Tony

3

Wenn Sie Schwein starten, übergeben Sie es eine Log4j.properties-Datei mit pig -4 <filename>.

In meinem Fall war es ein log4j.properties im conf Verzeichnis und das Niveau des Loggers org.apache.pig zu ERROR genügt genannt Einstellung der Logger weniger ausführlich zu machen.

log4j.logger.org.apache.pig=ERROR, A 
6

Eine einfache Möglichkeit, dies zu tun scheint, als unter Standardfehler umgeleitet werden.

Aber es wird alle errors unterdrücken.

pig -x local 2> /dev/null 

auch gefunden, dass, wenn Sie Ihre hadoop Verzeichnis grundsätzlich installieren entfernen oder umbenennen, um es zu Schwein unzugänglich macht dann diese all INFO-Nachrichten verschwinden.
Das Ändern der Protokollierungsstufen in hadoop hat nicht geholfen, nur damit Sie es wissen.

+2

Dies ist, offen gesagt, der einzige, der die Frage direkt beantwortet und eine einfache Lösung bietet. Das Erstellen und Bearbeiten einer log4j.properties-Datei schneidet mir nicht wirklich ab. – WattsInABox

+0

Es ist der beste Weg für mich –

0

Schwein hat Debug-Log-Level braucht man, um die Datei in pig.properties zu setzen,

# Logging level. debug=OFF|ERROR|WARN|INFO|DEBUG (default: INFO) 
# 
# debug=INFO 

Der Grund eine große Protokolle auf der Konsole zu erhalten, zum Beispiel ändere es zu FEHLER

+0

Müssen wir nach dieser Änderung Unix neu starten? es funktioniert nicht für mich. Ich habe es aktualisiert, aber es funktioniert nicht. – lucifer