2013-05-18 14 views
9

Utilizzo di Apache Pig versione 0.10.1.21 (rexportato). Quando eseguo uno script di maiale, ci sono un sacco di informazioni linee di registrazione che si presenta così:Modalità batch di maiale: come impostare il livello di registrazione per nascondere i messaggi del registro INFO?

2013-05-18 14:30:12,810 [Thread-28] INFO org.apache.hadoop.mapred.Task - Task 'attempt_local_0005_r_000000_0' done. 
2013-05-18 14:30:18,064 [main] WARN org.apache.pig.tools.pigstats.PigStatsUtil - Failed to get RunningJob for job job_local_0005 
2013-05-18 14:30:18,094 [Thread-31] WARN org.apache.hadoop.mapred.JobClient - No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String). 
2013-05-18 14:30:18,114 [Thread-31] INFO org.apache.hadoop.mapreduce.lib.input.FileInputFormat - Total input paths to process : 1 
2013-05-18 14:30:18,254 [Thread-32] INFO org.apache.hadoop.mapred.Task - Using ResourceCalculatorPlugin : [email protected] 
2013-05-18 14:30:18,265 [Thread-32] INFO org.apache.hadoop.mapred.MapTask - io.sort.mb = 10 

Esiste un comando SET all'interno dello script di maiale o un flag della riga di comando per consentire il livello di registrazione? Fondamentalmente vorrei nascondere i messaggi INFO [Thread-xx]. Mostra solo AVVERTENZA ed ERRORE. Ho provato il flag di debug della riga di comando. Purtroppo, i messaggi INFO continuano a essere visualizzati:

pig -x local -d WARN MyScript.pig 

Spero che ci sia una soluzione. Grazie in anticipo per qualsiasi aiuto.

RISOLTO: Risposta by Loran Bendig, set the log4j.properties. Riassunto per comodità

Passaggio 1: copiare il file di configurazione log4j nella cartella in cui si trovano i miei script suino.

cp /etc/pig/conf.dist/log4j.properties log4j_WARN 

Fase 2: Modificare il file log4j_WARN e assicurarsi che queste due linee sono presenti

log4j.logger.org.apache.pig=WARN, A 
log4j.logger.org.apache.hadoop = WARN, A 

Fase 3: script di maiale Esegui e istruzioni al fine di utilizzare il log4j personalizzato

pig -x local -4 log4j_WARN MyScript.pig 
+1

Questa sembra essere una domanda doppia: http: //stackoverflow.com/a/16414020 –

+0

@LorandBendig concordato, che ha una risposta migliore (da voi), ma questo ha un titolo molto migliore che sarà più facile da trovare per le persone. – Eli

+0

possibile duplicato di [Come si sopprime l'ingombro di informazioni inutili quando si utilizza il comando DUMP mentre si usa grunt tramite 'pig -x local'?] (Http://stackoverflow.com/questions/16410489/how-do-i- sopprimere-il-bloat-di-inutile-informazioni-quando-utilizzo-del-comando-d-w) – fxm

risposta

0

È possibile ignorare la configurazione di registro predefinita (che include messaggi INFO) come questa:

pig -4 log4j.properties MyScript.pig 
+0

NON FUNZIONA. Ho copiato il log4j.properties originale nella stessa cartella rispetto agli script pig. Quindi esegui lo script da pig -x local -4 myLog4J Myscript.pig. Ci sono la stessa quantità di linee INFO. Solo il [Thread-XX] è stato rimosso nelle righe del registro. Questo si è verificato se log4j.logger.org.apache.pig = WARN, A o log4j.logger.org.apache.pig = ERROR, A – Polymerase

+0

@Lorand Bendig ha una risposta un po 'più concisa - dovrai fare un po' di più configurazione per farlo funzionare - guarda il suo link qui sopra. – seedhead

+0

Ho letto il post di Lorand ma non ho notato una somiglianza nella sintassi (.hadoop vs .pig). In realtà la riga "log4j.logger.org.apache.hadoop = errore, A" deve essere aggiunta.Per motivi di chiarezza, ho intenzione di modificare il post originale per includere la risposta. Grazie. – Polymerase

0

è necessario impostare rootLogger troppo:

log4j.rootLogger=ERROR, A 
log4j.logger.org.apache.pig=ERROR, A 
log4j.logger.org.apache.hadoop = ERROR, A 
+0

Cosa fa il ', A'? – vy32

2

Un'altra impostazione potrebbe essere anche in questo modo:

Creare un file denominato nolog.conf, con il seguente contenuto

log4j.rootLogger=fatal 

e poi eseguire maiale come segue

pig -x local -4 nolog.conf 
Problemi correlati