Hadoop:输出文件有双输出

时间:2013-09-25 17:03:21

标签: python hadoop cluster-computing reduce mapper

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

1 个答案:

答案 0 :(得分:0)

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

路径