在 MapReduce 框架中,为什么组合器不能保证执行?
In MapReduce framework why combiner is not guaranteed to execute?
我是 MapReduce 的初学者。根据我的理解,Combiner 可用于通过在单个 Map 节点上进行聚合来提高性能。
我的问题是:combiner会在Map的所有数据集上执行吗?或者 MapReduce 中的 运行 组合器步骤是可选的?
当我们运行 MapReduce
作业处理大型dataset
时,Mapper 会生成大块的中间数据,而框架会将这些中间数据传递给Reducer 进行进一步处理。这会导致巨大的网络拥塞。
MapReduce
框架提供了一个称为 Combiner 的功能,它在减少网络拥塞方面起着至关重要的作用。 Combiner
也称为 Mini-reducer。
Will combiner
gets executed on all the data set of Map?
不,combiner
在每次缓冲区溢出时执行。请注意,即使在单个映射阶段,缓冲区溢出也可能发生多次。
Or Running combiner
step in MapReduce
is optional?
向作业添加 combiner
是可选的。这意味着如果你不添加combiner
,框架
1) 不会抱怨
2) 不会显式添加任何默认组合器。
现在开始执行 - 默认情况下 combiner
是可选的,mapreduce
框架不保证执行给定作业的 combiner
。
我是 MapReduce 的初学者。根据我的理解,Combiner 可用于通过在单个 Map 节点上进行聚合来提高性能。
我的问题是:combiner会在Map的所有数据集上执行吗?或者 MapReduce 中的 运行 组合器步骤是可选的?
当我们运行 MapReduce
作业处理大型dataset
时,Mapper 会生成大块的中间数据,而框架会将这些中间数据传递给Reducer 进行进一步处理。这会导致巨大的网络拥塞。
MapReduce
框架提供了一个称为 Combiner 的功能,它在减少网络拥塞方面起着至关重要的作用。 Combiner
也称为 Mini-reducer。
Will
combiner
gets executed on all the data set of Map?
不,combiner
在每次缓冲区溢出时执行。请注意,即使在单个映射阶段,缓冲区溢出也可能发生多次。
Or Running
combiner
step inMapReduce
is optional?
向作业添加 combiner
是可选的。这意味着如果你不添加combiner
,框架
1) 不会抱怨
2) 不会显式添加任何默认组合器。
现在开始执行 - 默认情况下 combiner
是可选的,mapreduce
框架不保证执行给定作业的 combiner
。