2014-12-05 3 views
0

Привет, я только что начал использовать Hadoop и запустил свою первую работу по созданию mapreduce. Я использовал python для построения карты и сокращения сценариев, и я протестировал ее и ее работу отлично, но когда я пытаюсь запустить их на hadoop.It возвращает ошибку.python mapreduce job return error

Ниже приводится команда, которую я вошел в терминале

/home/maitreyee/hadoop$ bin/hadoop jar contrib/streaming/hadoop-streaming-1.2.1.jar  -mapper /usr/bin/python mapper1.py -reducer /usr/bin/python reducer1.py -input /user/hduser/gutenberg/* -output /user/hduser/gutenberg-output1 

И ниже ошибки появляется

Warning: $HADOOP_HOME is deprecated. 
packageJobJar: [/app/hadoop/tmp/hadoop-unjar3238940252334854546/] []  /tmp/streamjob4553487258055690616.jar tmpDir=null 
14/12/05 11:53:29 INFO streaming.StreamJob: Running job: job_201412050953_0004 
14/12/05 11:53:29 INFO streaming.StreamJob: To kill this job, run: 
14/12/05 11:53:29 INFO streaming.StreamJob: /home/maitreyee/hadoop/libexec/../bin/hadoop job -Dmapred.job.tracker=localhost:54311 -kill job_201412050953_0004 
14/12/05 11:53:29 INFO streaming.StreamJob: Tracking URL: http://localhost:50030 /jobdetails.jsp?jobid=job_201412050953_0004 
14/12/05 11:53:30 INFO streaming.StreamJob: map 0% reduce 0% 
14/12/05 11:54:54 INFO streaming.StreamJob: map 100% reduce 100% 
14/12/05 11:54:54 INFO streaming.StreamJob: To kill this job, run: 
14/12/05 11:54:54 INFO streaming.StreamJob: /home/maitreyee/hadoop/libexec/../bin/hadoop job -Dmapred.job.tracker=localhost:54311 -kill job_201412050953_0004 
14/12/05 11:54:54 INFO streaming.StreamJob: Tracking URL: http://localhost:50030 /jobdetails.jsp?jobid=job_201412050953_0004 
14/12/05 11:54:54 ERROR streaming.StreamJob: Job not successful. Error: # of failed Map   Tasks exceeded allowed limit. FailedCount: 1. LastFailedTask:  task_201412050953_0004_m_000000 
14/12/05 11:54:54 INFO streaming.StreamJob: killJob... 
Streaming Command Failed! 

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

ответ

0

Он чувствует, что это всего лишь вопрос времени. Прежде чем запускать задания в hadoop, убедитесь, что hasoop работает нормально через jps, обновите систему и проверьте соединение ssh. Затем напишите команду следующим образом, чтобы выполнить простую карту python, уменьшите работу в hadoop (я использую Ubuntu 12.04 LTS и Hadoop 1.2.1).

[email protected]:~/hadoop$ bin/hadoop jar contrib/streaming/hadoop-streaming-1.2.1.jar -input /user/hduser/gutenberg/gutenberg/ -output /user/hduser/op4 -mapper /home/hduser/hadoop/mapper1.py -file /home/hduser/hadoop/mapper1.py -reducer /home/hduser/hadoop/reducer1.py -file /home/hduser/hadoop/reducer1.py 

Небольшое объяснение команды терминала выше: С его потоковой работой, поэтому мы первым положить местоположение потоковой баночка файл Hadoop, то расположение входного файла, а затем расположение выходного файла (попробуйте указать уникальное имя и должны присутствовать в hdf), тогда мы расскажем о том, какую функцию мы хотим выполнить, и где она будет выполняться (отображать и уменьшать задачи), а затем атрибут файла, чтобы указать расположение скриптов , (в случае языка сценариев.)

Если все еще есть какие-либо сомнения, сообщите мне.