我正在运行一个 Hadoop 程序,并将以下内容作为我的输入文件input.txt:
1
2
映射器.py:
import sys
for line in sys.stdin:
print line,
print "Test"
减速器.py:
import sys
for line in sys.stdin:
print line,
当我在没有 Hadoop 的情况下运行它时: $ cat ./input.txt | ./mapper.py | ./reducer.py,输出如预期:
1
2
Test
但是,通过流 API(如此处所述)通过 Hadoop 运行它,输出的后半部分似乎有点“加倍”:
1
2
Test
Test
此外,当我通过 Hadoop 运行程序时,由于以下原因,它似乎有 1/4 的机会失败:
错误:失败的地图任务数超出了允许的限制。失败次数: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