限制Map reduce API中reducer的输出



在我的mapreduce程序中,我的reducer的输出产生100万行输出,但我只需要初始的前3行输出。为此,我在我的Reducer类中维护一个实例变量,该变量计算它看到了多少条记录,并在3之后停止发出它们。但是reducer仍然需要遍历这100万条记录。是否有一种方法可以在读取前3条记录时立即停止执行以提高代码的性能?

这里我还必须让reducer计数为1,这样我的实例变量计数才能正常工作,这也会降低程序的性能。

谢谢,非常感谢你的帮助。

在您的例子中,您可以将reducer的数量设置为1,在这个类中,您可以计算前3行并为它们发出输出,然后忽略任何其他不发出任何内容的输入。这并不会阻止框架继续为映射器计算出的所有键调用reduce()方法。

如果可能的话,应该减少映射器、组合器或分区器的输出。

恐怕没有办法让reduce停止这个进程。

相关内容

  • 没有找到相关文章

最新更新