hadoop:输出文件有双输出

szqfcxe2  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(534)

我正在运行一个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
p8ekf7hl

p8ekf7hl1#

它提供相同的输出。我猜您只是将reducer的位置指定为mapper.py。确保提供了reducer.py的正确路径

相关问题