我正在尝试将Hadoop流与Python脚本一起使用,但是不幸的是,我收到以下错误:
14/08/23 13:31:50 INFO streaming.StreamJob: To kill this job, run:
14/08/23 13:31:50 INFO streaming.StreamJob: UNDEF/bin/hadoop job -Dmapred.job.tracker=localhost.localdomain:8021 -kill job_201408210627_0018
14/08/23 13:31:50 INFO streaming.StreamJob: Tracking URL: http://0.0.0.0:50030/jobdetails.jsp?jobid=job_201408210627_0018
14/08/23 13:31:51 INFO streaming.StreamJob: map 0% reduce 0%
14/08/23 13:32:17 INFO streaming.StreamJob: map 100% reduce 100%
14/08/23 13:32:17 INFO streaming.StreamJob: To kill this job, run:
14/08/23 13:32:17 INFO streaming.StreamJob: UNDEF/bin/hadoop job -Dmapred.job.tracker=localhost.localdomain:8021 -kill job_201408210627_0018
14/08/23 13:32:17 INFO streaming.StreamJob: Tracking URL: http://0.0.0.0:50030/jobdetails.jsp?jobid=job_201408210627_0018
14/08/23 13:32:17 ERROR streaming.StreamJob: Job not successful. Error: NA
14/08/23 13:32:17 INFO streaming.StreamJob: killJob...
Streaming Command Failed!
我正在尝试运行以下命令:
hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.7.0.jar -input "/user/cloudera/vecs" -output "/user/cloudera/vecs_output" -file /home/cloudera/vects/streaming/mapper.py -mapper mapper.py -file /home/cloudera/vects/streaming/reducer.py -reducer reducer.py -jobconf mapred.map.tasks=20 -jobconf mapred.reduce.tasks=1
当我查看工作准备时,我可以看到:
java.lang.Throwable: Child Error
at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:250)
Caused by: java.io.IOException: Task process exit with nonzero status of 1.
at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:237)
当我尝试在不使用hadoop的情况下使用命令运行代码时,一切似乎都正常运行:
head -100 ./data/vecs.txt|./streaming/mapper.py|./streaming/reducer.py
我也读过this post,我有#! / usr / bin / env python2.7作为我的python文件的第一行。
有人知道什么可能是错的吗?预先感谢您的任何建议和答案。
最佳答案
因此,我通过从头开始使用Hadoop设置新的OS实例来使一切正常工作。
现在,我很好奇旧的Cloudera虚拟机可能是什么问题?
关于python - Hadoop流式传输命令失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25466296/