2010-09-21 20 views
6

Grep sembra non funzionare per Hadoop lo streamingHadoop in streaming grep non funziona

Per: Hadoop vaso /usr/local/hadoop-0.20.2/contrib/streaming/hadoop-0.20.2-streaming. jar -input /user/root/tmp2/user.data -output/user/root/selected_data -mapper '/ bin/grep 1938678460' -reducer 'wc' -jobconf mapred.output.compress = false

Ottengo : java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): il sottoprocesso non riuscita con codice 1 a org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads (PipeMapRed.java:311) a org.apache.hadoop.streaming.PipeMapRed . mapRedFinished (PipeMapRed.java:545) in org.apache.hadoop.streaming.PipeMapper.close (PipeMapper.java:132) in org.apache.hadoop.mapred.MapRunner.run (MapRunner.java:57) presso org.apache.hadoop.streaming.PipeMapRunner.run (PipeMapRunner.java:36) a org.apache.hadoop.mapred.MapTask.runOldMapper (MapTask.java:358) a org.apache.hadoop.mapred.MapTask. eseguire (MapTask.java:307) in org.apache.hadoop.mapred.Child.main (Child.java:17

Qualche idea?

Ho anche provato: -mapper 'cat' -reducer '/ bin/grep 1.938.678,46 mille' (cat funziona, grep non)

.... Ho anche controllato su tutte le macchine che/bin/grep c'è ed è

Grep non funziona, o mi manca qualcosa?

risposta

17

Non l'ho provato da solo, ma grep si chiude con un codice di uscita diverso da zero se non trova qualcosa. Se una mappa non contiene la stringa per la quale vuoi ottenere, ottieni un codice di uscita diverso da zero e hasdoop errore. Forse qualcosa come "/ bin/grep || true" funziona.

+10

si è corretto e questa correzione l'ha effettivamente corretto: -jobconf stream.non.zero.exit.is.failure = false – Federico

Problemi correlati