嗨,我刚刚开始使用hadoop并运行我的第一个mapreduce作业。我使用python构建map和reduce脚本,并对其进行了测试,结果很好,但是当我尝试在hadoop上运行它们时,返回了错误。
下面是我在终端输入的命令
/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!
请说明出了什么问题以及如何解决。
1条答案
按热度按时间xxhby3vn1#
感觉只是时间问题。在hadoop中运行作业之前,确保hadoop通过jps正常运行,保持系统更新并检查ssh连接。然后编写如下命令,在hadoop中运行一个简单的python map reduce作业(我使用的是ubuntu12.04 lts和hadoop 1.2.1)。
上面终端命令的一个小说明:因为是流式作业,所以我们先把hadoop的流jar文件的位置,然后是输入文件的位置,然后是输出文件的位置(尽量给出一个唯一的名称,应该出现在hdfs中),然后告诉hadoop我们要执行什么函数,以及它将在何处执行(Map和减少任务),然后是file属性来指示脚本的位置(在脚本语言的情况下。)
如果还有任何疑问,请告诉我。