如何限制在map reduce作业中发送到reducer的记录数?

时间:2012-09-17 20:39:43

标签: hadoop mapreduce

我有一个超过300000行的文件,它是map reduce作业的输入,我希望作业只处理该文件的前1000行。有没有一种很好的方法来限制发送到reducer的记录数量?

我需要写一个简单的身份缩减器来输出我的输出。目前,reducer写出与输入中一样多的行。

1 个答案:

答案 0 :(得分:2)

首先,确保mapreduce程序设置为仅使用一个reducer。它必须明确设置,否则Hadoop可能会选择其他一些数字,然后没有好的方法来协调reduce任务以确保它们总共不会发出超过1000个。然后,您可以简单地在Reducer类中维护一个实例变量,该变量计算它看到的记录数,并在1000之后停止发送它们。

另一种可能更简单的方法是缩短输入文件。只需删除不需要的行。

值得注意的是,蜂巢和猪都是可以为你做这类事情的框架。编写“原始”MapReduce代码在实践中很少见。大多数人都使用这两种中的一种。