我在单个节点上使用hadoop 1.0.1,我试图使用python 2.7流化制表符分隔文件。我可以让迈克尔诺尔的字数统计脚本使用hadoop/python运行,但无法得到这个非常简单的映射器和简化器来工作,只是复制文件。这里的映射:Hadoop流在地图/减少操作的中间崩溃
import sys
for line in sys.stdin:
line = line.strip()
print '%s' % line
这里的减速机:
import sys
for line in sys.stdin:
line = line.strip()
print line
这里的输入文件的一部分:
1 857774.000000
2 859164.000000
3 859350.000000
...
的Linux中的映射器和减速做工精细:
cat input.txt | python mapper.py | sort | python reducer.py > a.out
但我chmod m后冲击片雷管和减速机,输入文件移动到HDFS并检查它的存在和运行:
bin/hadoop jar contrib/streaming/hadoop-*streaming*.jar -file mapperSimple.py -mapper mapperSimple.py -file reducerSimple.py -reducer reducerSimple.py -input inputDir/* -output outputDir
我得到以下错误:
12/06/03 10:19:11 INFO streaming.StreamJob: map 0% reduce 0%
12/06/03 10:20:15 ERROR streaming.StreamJob: Job not successful. Error: # of failed Map Tasks exceeded allowed limit. FailedCount: 1. LastFailedTask: task_201206030550_0003_m_000001
12/06/03 10:20:15 INFO streaming.StreamJob: killJob...
Streaming Job Failed!
任何想法?谢谢。
谢谢,克里斯。我的大脑总是忽视注释符号,所以我最终花了20个小时削减了我的代码并尝试了我所能想到的每一个变化。非常感激。 – user1106278