2010-09-21 14 views
6

Grep için Hadoop akışıHadoop akışı grep

için çalışıyor gibi görünmemektedir çalışmaz. jar -input /user/root/tmp2/user.data -output/kullanıcı/root/selected_data -mapper '/ bin/grep 1938678460' -kullanıcı 'wc' -jobconf mapred.output.compress = false

: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): alt işlemi org.apache.hadoop.streaming.PipeMapRed kodun org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads 1 (PipeMapRed.java:311) başarısız oldu . en org.apache.hadoop.mapred.MapRunner.run (MapRunner.java:57) de org.apache.hadoop.streaming.PipeMapper.close (PipeMapper.java:132) de (PipeMapRed.java:545) mapRedFinished org.apache.hadoop.streaming.PipeMapRunner.run (PipeMapRunner.java:36) org.apache.hadoop.mapred.MapTask.runOldMapper (MapTask.java:358) adresinden org.apache.hadoop.mapred.MapTask adresinde. run (MapTask.java:307) at org.apache.hadoop.mapred.Child.main (Child.java:17

Herhangi bir fikrin var mı?

Ben de denedim: 'cat' -reducer '/ bin/grep 1938678460'

.... Ben de tüm makinelerde kontrol (kedi, grep gelmez çalışır)/bin/grep -mapper orada olduğunu ve

Grep çalışmıyor, ya da ben bir şey eksik?

cevap

17

Kendimi bu denemedim ama bir şey bulamadık eğer grep sıfırdan farklı çıkış kodu ile çıkar. Bir harita için yazılması dizeyi içermiyorsa, bir sıfır olmayan çıkış kodu almak ve Hadoop hata olur. Belki "/ bin/grep || true" gibi bir şey çalışır. Sağ ve bu düzeltme aslında sabit

+10

size: -jobconf stream.non.zero.exit.is.failure = false – Federico