Python Hadoop-Streaming-Fehler "ERROR streaming.StreamJob: Job nicht erfolgreich!" Und Stack-Trace: ExitCodeException exitCode = 134
Ich versuche, ein Python-Skript auf einem Hadoop-Cluster mithilfe von Hadoop Streaming für die Stimmungsanalyse auszuführen. Dasselbe Skript, das ich auf einem lokalen Computer ausführe, der ordnungsgemäß ausgeführt wird und eine Ausgabe liefert.
ch verwende diesen Befehl, um auf einem lokalen Computer ausgeführt zu werde
$ cat /home/MB/analytics/Data/input/* | ./new_mapper.py
und auf Hadoop Cluster laufen Ich benutze den folgenden Befehl
$ hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.5.0-mr1-cdh5.2.0.jar -mapper "python $PWD/new_mapper.py" -reducer "$PWD/new_reducer.py" -input /user/hduser/Test_04012015_Data/input/* -output /user/hduser/python-mr/out-mr-out
Der Beispielcode meines Skripts lautet
#!/usr/bin/env python
import sys
def main(argv):
## for line in sys.stdin:
## print line
for line in sys.stdin:
line = line.split(',')
t_text = re.sub(r'[?|$|.|!|,|!|?|;]',r'',line[7])
words = re.findall(r"[\w']+", t_text.rstrip())
predicted = classifier.classify(feature_select(words))
i=i+1
referenceSets[predicted].add(i)
testSets[predicted].add(i)
print line[7] +'\t'+predicted
if __name__ == "__main__":
main(sys.argv)
Der Stack-Trace von Exception lautet:
15/04/22 12:55:14 INFO mapreduce.Job: Task Id : attempt_1429611942931_0010_m_000001_0, Status : FAILED
Error: java.io.IOException: Stream closed at java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:434)
...
Exit code: 134
Exception message: /bin/bash: line 1: 1691 Aborted
(core dumped) /usr/lib/jvm/java-7-oracle-cloudera/bin/java
-Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Djava.net.preferIPv4Stack=true -Xmx525955249
-Djava.io.tmpdir=/yarn/nm/usercache/hduser/appcache/application_1429611942931_0010/container_1429611942931_0010_01_000016/tmp
-Dlog4j.configuration=container-log4j.properties
-Dyarn.app.container.log.dir=/var/log/hadoop-yarn/container/application_1429611942931_0010/container_1429611942931_0010_01_000016 -Dyarn.app.container.log.filesize=0
-Dhadoop.root.logger=INFO,CLA org.apache.hadoop.mapred.YarnChild 192.168.0.122 48725 attempt_1429611942931_0010_m_000006_1 16 > /var/log/hadoop-yarn/container/application_1429611942931_0010/container_1429611942931_0010_01_000016/stdout 2> /var/log/hadoop-yarn/container/application_1429611942931_0010/container_1429611942931_0010_01_000016/stderr
....
15/04/22 12:55:47 ERROR streaming.StreamJob: Job not Successful!
Streaming Command Failed!
Ich habe versucht, Protokolle anzuzeigen, aber in der Farbe wird mir dieser Fehler angezeigt. Bitte schlagen Sie mir vor, was falsch läuft.