限制map reduce api中reducer的输出

3duebb1j  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(390)

在我的mapreduce程序中,我的reducer的输出产生100万行输出,但我只需要最初的前3行输出。为此,我在我的reducer类中维护了一个示例变量,该变量计算它看到了多少条记录,并在3条记录之后停止发出它们。但还原剂还是要通过100万条记录。有没有一种方法可以在读取前3条记录时立即停止执行,以提高代码的性能。
这里我还必须将reducer计数为1,这样我的示例变量计数才能正常工作,这也会降低程序的性能。
谢谢,我会非常感谢你的帮助。

hujrc8aj

hujrc8aj1#

在您的例子中,您可以将reducer的数量设置为1,在这个类中,您可以计算前3行并为它们发出输出,然后忽略任何其他不发出任何信息的输入。这不会阻止框架继续为Map程序计算的所有键调用reduce()方法。
如果可能的话,您应该减少Map器级别、组合器或分区器的输出。
恐怕没有办法让reduce停止这个过程。

相关问题