我正在运行Hadoop程序并将以下内容作为我的输入文件 input.txt :
1
2
mapper.py :
import sys
for line in sys.stdin:
print line,
print "Test"
reducer.py :
import sys
for line in sys.stdin:
print line,
当我在没有Hadoop的情况下运行它时: $ cat ./input.txt | ./mapper.py | ./reducer.py ,输出符合预期:
1
2
Test
但是,通过流API运行Hadoop(如here所述),输出的后半部分似乎有些“加倍”:
1
2
Test
Test
另外,当我通过Hadoop运行程序时,由于这个原因,它似乎有1/4的失败机会:
错误:失败的地图任务数超过了允许的限制。 FailedCount:1。
我已经看了一段时间,无法弄清楚我没有得到什么。如果有人可以帮助解决这些问题,我将不胜感激!感谢。
编辑:当 input.txt 为:
时1
2
3
4
5
6
7
8
9
10
输出结果为:
1
10
2
3
4
5
6
7
8
9
Test
Test
答案 0 :(得分:0)
它提供相同的输出。我猜你只是指定reducer的位置到mapper.py。 确保您提供了正确的reducer.py
路径