我们可以使用组合器来替换Mapreduce中的reduce吗?

时间:2016-05-25 12:10:39

标签: hadoop mapreduce

我们可以使用合并器替换Mapreduce作业中的reduce吗?如果没有,我们可以用什么来替换mapreduce工作中的reducer?

1 个答案:

答案 0 :(得分:1)

严格来说,没有。

只有在至少有一个减速器被调用时才会调用组合器。

当没有减速器时,作业在地图阶段停止,省略地图任务输出的局部排序。组合器也需要这种分类(它们实际上是局部减速器)。所以,没有减速器=>没有合成器。

但是,如果使用映射器聚合,有时可以模拟组合器的操作。例如,您可以将映射器中wordcount的结果存储在本地数据结构中,在每个映射器结束时,即在调用cleanup()方法时,对每个字的本地频率求和并发出。在这项工作结束时,您最终会得到具有不同计数的重复单词,这些单词来自不同的输入分割,但这与您可以获得减速器的功能一样接近,而不使用减速器。