假设只有一个化简器。
我的方案是获取大学中得分最高的N名名单。数据采用格式。默认情况下,Map/reduce 框架按升序对数据进行排序。但是我希望列表按降序排列,或者至少如果我可以从末尾访问排序列表,我的工作就会变得非常容易。我可以将数据限制在一定范围内,而不是向化简器发送大量数据。(我想覆盖预定义的随机/排序)感谢和问候阿什万斯
我想组合器就是你想要的。它与映射器一起运行,它们通常执行化简器所做的事情,但不是在单个映射器的输出数据上。通常,合路器类的设置与减速器相同。在您的情况下,您可以在每个映射器中对top-K元素进行排序和挑选,并仅发送这些元素。
因此,您最多只会向化简器发送最多 K * number of mappers
条记录,而不是发送所有地图输出记录。
您可以在 http://wiki.apache.org/hadoop/WordCount 上找到示例用法。
奖励 - 查看 http://blog.optimal.io/3-differences-between-a-mapreduce-combiner-and-reducer/,了解合路器和减速器之间的主要区别。