2013-05-07 7 views
9

Sto lavorando con PigLatin, usando il grunt, e ogni volta che butto "roba", la mia console viene sbalordita da blah blah, blah non-info, c'è un modo per sopprimere tutto ciò?Come si sopprime l'ingombro di informazioni inutili quando si utilizza il comando DUMP mentre si utilizza grunt tramite 'pig -x local'?

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

2013-05-06 19: 42: 04.146 [principale] INFO org.apache.pig.tools.pigstats.ScriptState - Pig funzioni utilizzate nello script: UNKNOWN
2013/05/06 19 : 42: 04,147 [principale] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler - Soglia di concatenazione dei file: 100 ottimistica? falsa ...
...
--- altro come 50 righe di contesto inutile che compromettono il junk qui ... fino --- ...
...
org.apache.pig .backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - Successo!

ora i miei come 4 righe di informazioni alla ricerca di:

 
(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>

---> ovviamente se esso errori, fine Pier informazioni utili, ma non quando funziona fondamentalmente grande.

+0

Ho provato quanto sopra, non funziona ... Tuttavia questo link funziona http: // StackOverflow.it/questions/16627748/pig-batch-mode-how-to-set-logging-level-to-hide-info-log-messages – Rudra

risposta

7

È necessario impostare le proprietà log4j. Per esempio:

$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 

È inoltre possibile impostare il livello di registrazione Hadoop legati così:

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

Sembra esserci un [bug] (https://issues.apache.org/jira/browse/PIG-3275) in Pig 0.12.0 che causa il fallimento di questo. – Xaero182

+0

@ Xaero182 Penso che 0.12.0 usi logback invece di log4j.Try aggiungendo questo OPT JAVA: -Dlogback.configurationFile =/percorso/al/tuo/logback.xml file. – Tony

3

Quando si avvia Pig, passarlo un file log4j.properties con pig -4 <filename>.

Nel mio caso c'è stata una log4j.properties nella directory conf e l'impostazione del livello del logger di nome org.apache.pig a ERROR è sufficiente a rendere il logger meno prolissa.

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

Un modo semplice per fare questo sembra essere per reindirizzare errore standard, come di seguito.

Ma sopprimerà tutto errors.

pig -x local 2> /dev/null 

trovato anche che se si rimuove o rinominare il tuo Hadoop directory di installazione per rendere praticamente inaccessibile al maiale poi tutti quei messaggi INFO andare via.
La modifica dei livelli di registrazione in hadoop non ha aiutato, solo per quello che sai.

+2

Questo, francamente, è l'unico che risponde direttamente alla domanda e fornisce una soluzione semplice. Creare e modificare un file log4j.properties in realtà non lo taglia per me. – WattsInABox

+0

È il modo migliore per me –

0

maiale ha livello di registro di debug una necessità di impostare che nel pig.properties di file,

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

La ragione uno ottenere grandi log su console, per esempio cambiarlo in ERRORE

+0

Abbiamo bisogno di riavviare Unix dopo questa modifica? non sta funzionando per me. L'ho aggiornato ma non funziona. – lucifer