我是 MapReduce 的初学者。根据我的理解,可以通过在单个Map节点上进行聚合来使用Combiner来提高性能。
我的问题是:合并器是否会在Map的所有数据集上执行?或者 MapReduce 中的运行组合器步骤是可选的吗?
答案 0 :(得分:2)
当我们在大型MapReduce
上运行dataset
作业时,Mapper会生成大量的中间数据,框架会将此中间数据传递给Reducer进行进一步处理。这导致了巨大的网络拥塞。
MapReduce
框架提供称为Combiner的功能,在减少网络拥塞方面起着至关重要的作用。 Combiner
也称为迷你缩减器。
combiner
会在Map的所有数据集上执行吗?
不,在每次缓冲区溢出时执行combiner
。请注意,即使在单个地图阶段,缓冲区溢出也可能多次发生。
或
combiner
中的MapReduce
步骤是可选的吗?
向作业添加combiner
是可选的。这意味着如果您不添加combiner
,那么框架
1)不会抱怨
2)不会明确添加任何默认组合器。
现在开始执行 - 默认情况下combiner
是可选的,mapreduce
框架不保证执行给作业的combiner
。