Запуск сценария R с использованием потоковой передачи hadoop Сбой задания: PipeMapRed.waitOutputThreads(): сбой подпроцесса с кодом 1

У меня есть сценарий R, который прекрасно работает в R Colsole, но когда я запускаю потоковую передачу Hadoop, происходит сбой с приведенной ниже ошибкой в ​​фазе карты. Найдите журнал попыток задач

Команда Hadoop Streaming у меня есть:

/home/Bibhu/hadoop-0.20.2/bin/hadoop jar \
   /home/Bibhu/hadoop-0.20.2/contrib/streaming/*.jar \
   -input hdfs://localhost:54310/user/Bibhu/BookTE1.csv \
   -output outsid -mapper `pwd`/code1.sh

логи stderr

Loading required package: class
Error in read.table(file = file, header = header, sep = sep, quote = quote,  : 
  no lines available in input
Calls: read.csv -> read.table
Execution halted
java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1
    at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:362)
    at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:572)
    at org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:136)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57)
    at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

журналы системного журнала

2013-07-03 19:32:36,080 INFO org.apache.hadoop.metrics.jvm.JvmMetrics: Initializing JVM Metrics with processName=MAP, sessionId=
2013-07-03 19:32:36,654 INFO org.apache.hadoop.mapred.MapTask: numReduceTasks: 1
2013-07-03 19:32:36,675 INFO org.apache.hadoop.mapred.MapTask: io.sort.mb = 100
2013-07-03 19:32:36,835 INFO org.apache.hadoop.mapred.MapTask: data buffer = 79691776/99614720
2013-07-03 19:32:36,835 INFO org.apache.hadoop.mapred.MapTask: record buffer = 262144/327680
2013-07-03 19:32:36,899 INFO org.apache.hadoop.streaming.PipeMapRed: PipeMapRed exec [/home/Bibhu/Downloads/SentimentAnalysis/Sid/smallFile/code1.sh]
2013-07-03 19:32:37,256 INFO org.apache.hadoop.streaming.PipeMapRed: Records R/W=0/1
2013-07-03 19:32:38,509 INFO org.apache.hadoop.streaming.PipeMapRed: MRErrorThread done
2013-07-03 19:32:38,509 INFO org.apache.hadoop.streaming.PipeMapRed: PipeMapRed failed!
2013-07-03 19:32:38,557 WARN org.apache.hadoop.mapred.TaskTracker: Error running child
java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1
    at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:362)
    at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:572)
    at org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:136)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57)
    at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)
2013-07-03 19:32:38,631 INFO org.apache.hadoop.mapred.TaskRunner: Runnning cleanup for the task

3 ответа

Вам нужно найти журналы от ваших картографов и редукторов, так как это место, где работа не выполняется (как указано в java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1). Это говорит о том, что ваш R-скрипт потерпел крах.

Если вы используете дистрибутив Hortonworks Hadoop, проще всего открыть свою историю вакансий. Это должно быть в http://127.0.0.1:19888/jobhistory, Должна быть возможность найти журнал в файловой системе также с помощью командной строки, но я пока не нашел где.

  1. открыто http://127.0.0.1:19888/jobhistory в вашем веб-браузере
  2. Нажмите на идентификатор задания с ошибкой
  3. Нажмите на число, указывающее количество неудачных заданий
  4. Нажмите на ссылку попытки
  5. Нажмите на ссылку журналы

Вы должны увидеть страницу, которая выглядит примерно так

Log Type: stderr
Log Length: 418
Traceback (most recent call last):
  File "/hadoop/yarn/local/usercache/root/appcache/application_1404203309115_0003/container_1404203309115_0003_01_000002/./mapper.py", line 45, in <module>
    mapper()
  File "/hadoop/yarn/local/usercache/root/appcache/application_1404203309115_0003/container_1404203309115_0003_01_000002/./mapper.py", line 37, in mapper
    for record in reader:
_csv.Error: newline inside string

Это ошибка из моего скрипта Python, ошибки из R выглядят немного иначе.

источник: http://hortonworks.com/community/forums/topic/map-reduce-job-log-files/

  1. напишите hadoopStreamming jar с полной версией вроде hadoop-streaming-1.0.4.jar
  2. указать отдельный путь к файлу для картографа и редуктора с параметром -file
  3. скажите hadoop, который является вашим кодом маппера и редуктора с опцией -mapper & -reducer

более подробную информацию см. в разделе Запуск WordCount в Hadoop с использованием сценария R

Я получил эту же ошибку сегодня вечером, также разрабатывая задания Map Reduce Streaming с R,

Я работал над кластером из 10 узлов, каждый с 12 ядрами, и попытался предоставить во время отправки:

-D mapred.map.tasks=200\
-D mapred.reduce.tasks=200

Работа успешно завершена, хотя, когда я изменил их на

-D mapred.map.tasks=10\
-D mapred.reduce.tasks=10

Это было таинственное исправление, и, возможно, сегодня вечером возникнет больше контекста. Но если кто-то из читателей может объяснить, пожалуйста, сделайте!

Другие вопросы по тегам