其他分享
首页 > 其他分享> > MapReduce Combiner 组件(局部聚合)

MapReduce Combiner 组件(局部聚合)

作者:互联网

Combiner 组件的作用

MapReduce 中的 Combiner 组件就是为了避免 MapTask 任务和 ReduceTask 任务之间的过多的数据传输而设置的

设置 Combiner 组件
// 设置maptask端的 局部聚合 Combiner 组件
job.setCombinerClass(MyCombiner.class);
Combiner 组件使用注意事项

数据倾斜问题解决方案

步骤一:第一次在 Map 阶段对那些导致了数据倾斜的 Key 加上分区号随机值,这样本来相同的 Key 也会被分到多个 ReduceTask 任务中进行

步骤二:使用 Combiner 组件进行局部聚合,减少传输到 ReducerTask 的数据量,减轻 ReducerTask 的处理压力,节约网络带宽

注:增加ReducerTask 并行度,或者实现自定义分区,将 Key 均匀分配到不同Reducer

标签:Combiner,聚合,自定义,Reducer,MapReduce,Key,组件
来源: https://www.cnblogs.com/ccl971123/p/15646957.html