我正在运行一个hadoop程序,输入文件input.txt如下:
1
2
Map器.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
然而,通过hadoop通过流式api运行它(如本文所述),输出的后一部分似乎有点“加倍”:
1
2
Test
Test
另外,当我通过hadoop运行程序时,由于以下原因,它有1/4的失败几率:
错误:#个失败的Map任务超出了允许的限制。失败计数: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
1条答案
按热度按时间p8ekf7hl1#
它提供相同的输出。我猜您只是将reducer的位置指定为mapper.py。确保提供了reducer.py的正确路径