1

假设只有一个减速器。

我的方案是获得大学中前 N 名得分手的名单。数据是格式的。默认情况下,Map/reduce 框架按升序对数据进行排序。但是我希望列表按降序排列,或者至少如果我可以从最后访问排序列表,我的工作变得非常容易。我可以将数据限制在一个限制内,而不是向 reducer 发送大量数据。(我想覆盖预定义的随机/排序)感谢和问候 Ashwanth

4

1 回答 1

0

我猜Combiners是你想要的。它与 Mapper 一起运行,它们通常执行 reducer 所做的工作,而是在单个映射器的输出数据上运行。一般combiner类的设置和reducer一样。在您的情况下,您可以对每个映射器中的前 K 个元素进行排序和挑选,然后仅将其发送出去。

因此,您不会发送所有地图输出记录,而是只K * number of mappers向减速器发送最多记录。

您可以在http://wiki.apache.org/hadoop/WordCount上找到示例用法。

奖励 - 查看http://blog.optimal.io/3-differences-between-a-mapreduce-combiner-and-reducer/了解组合器和化简器之间的主要区别。

于 2015-03-05T18:23:50.943 回答