2010-09-21 16 views
6

Grep Hadoop स्ट्रीमिंगHadoop स्ट्रीमिंग ग्रेप काम नहीं करता है

के लिए के लिए काम करने के लिए नहीं लगता है: Hadoop जार /usr/local/hadoop-0.20.2/contrib/streaming/hadoop-0.20.2-streaming। jar -input /user/root/tmp2/user.data -output/user/root/select_data -mapper '/ bin/grep 1 938678460' -reducer 'wc' -jobconf mapred.output.compress = false

मुझे मिलता है : java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): उपप्रक्रिया org.apache.hadoop.streaming.PipeMapRed में कोड 1 org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads पर (PipeMapRed.java:311) के साथ विफल । mapRedFinished (PipeMapRed.java:5245) org.apache.hadoop.streaming.PipeMapper.close (PipeMapper.java:132) org.apache.hadoop.mapred.MapRunner.run (MapRunner.java:57) पर org.apache.hadoop.streaming.PipeMapRunner.run (PipeMapRunner.java:36) org.apache.hadoop.mapred.MapTask.runOldMapper (MapTask.java:358) org.apache.hadoop.mapred.MapTask पर। चलाएं (MapTask.java:307) org.apache.hadoop.mapred.Child.main (Child.java:17

कोई विचार?

मैं भी करने की कोशिश की: -mapper 'बिल्ली' -reducer '/ bin/ग्रेप +१९३८६७८४६०' (बिल्ली काम करता है, ग्रेप नहीं करता है)

.... मैं भी सभी मशीनों पर जाँच की है कि/bin/ग्रेप वहाँ है और यह

Grep काम नहीं करता है, या मुझे कुछ याद आ रहा है?

उत्तर

17

मैंने इसे स्वयं नहीं किया है, लेकिन अगर grep कुछ शून्य नहीं मिला तो grep बाहर निकलता है। यदि किसी मानचित्र में स्ट्रिंग नहीं है जो आप grep के लिए करते हैं, तो आपको एक गैर-शून्य निकास कोड मिलता है और हैडऑप त्रुटि होगी। शायद कुछ "/ bin/grep || true" काम करता है।

+10

जहां आप सही और यह फ़िक्स वास्तव में इसे ठीक करते हैं: -jobconf stream.non.zero.exit.is.failure = false – Federico

संबंधित मुद्दे