Ошибка потоковой передачи Python Hadoop «ERROR streaming.StreamJob: Job not Successful!» И трассировка стека: ExitCodeException exitCode = 134

Я пытаюсь запустить скрипт python на кластере Hadoop, используя Hadoop Streaming для анализа настроений. Тот же сценарий, который я запускаю на локальном компьютере, который работает правильно и дает вывод.
для запуска на локальном компьютере я использую эту команду.

$ cat /home/MB/analytics/Data/input/* | ./new_mapper.py 

и для запуска на кластерах hadoop я использую команду ниже

 $ 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 

Пример кода моего скрипта

 #!/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) 

Трассировка стека исключений:

  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! 

Я пытался видеть журналы, но в оттенке это показывает мне эту ошибку. введите описание изображения здесь Пожалуйста, предложите мне, что происходит не так.

One Solution collect form web for “Ошибка потоковой передачи Python Hadoop «ERROR streaming.StreamJob: Job not Successful!» И трассировка стека: ExitCodeException exitCode = 134”

Похоже, вы забыли добавить файл new_mapper.py в свою работу.

В основном, ваша работа пытается запустить скрипт python new_mapper.py , но этот скрипт отсутствует на сервере, на котором работает ваш картограф.

Вы должны добавить этот файл в свою работу, используя параметр -file <local_path_to_your_file> .

См. Документацию и пример здесь: https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/HadoopStreaming.html#Streaming_Command_Options

  • Обработка вывода tcpdump в python
  • Подпроцесс Python - перенаправление stdout / err на два места
  • Запуск bash в подпроцессе прерывает stdout tty, если прерывается при ожидании `read -s`?
  • подпроцесс readline висит в ожидании EOF
  • subprocess.call не работает от pyCharm
  • Запуск командного файла в другом каталоге в python
  • Взаимодействие пользователя между хостом и виртуальной машиной
  • Как предотвратить подпроцесс subpcess.popen в Windows?
  • Интерактивный ввод / вывод с использованием python
  • Как программно подсчитать количество файлов в архиве с помощью python
  • Чтение / запись подпроцесса Popen ()
  • Python - лучший язык программирования в мире.