
MapReduce之Combiner合并
发布日期:2021-05-09 07:00:03
浏览次数:21
分类:精选文章
本文共 637 字,大约阅读时间需要 2 分钟。
Combiner是MR程序中
Mapper和Reducer
之外的一种组件(本质是一个Reducer类)Combinr组件的父类就是
Reducer
Conbimer只有在驱动类里设置了之后,才会运行
Combiner和Reducer的区别在于运行的位置:
map----sort---copy---sort(shuffle阶段)---reduce
- ==Combiner是在每一个MapTask所在的节点运行
- Reducer是接收全局所有Mapper的输出结果==
Combiner的意义就是对每一个MapTask的输出进行局部汇总,以减小网络传输量(减少磁盘IO和网络IO)
Cormbiner能多应用的前提是不能影响最终的业务逻辑,而且,Combiner的输出kv应该跟Reducer的输入kv类型要对应起来。 Combiner用在加减操作的场景,不能用在乘除操作的场景
比如:Combiner既有可能在MapTask端调用:
①每次溢写前会调用Combiner对溢写的数据进行局部合并②在merge时,如果溢写的片段数>=3,如果设置了Combiner,Combiner会再次对数据进行Combine!Combiner既有可能在ReduceTask端调用:
③shuffle线程拷贝多个MapTask同一分区的数据,拷贝后执行merge和sort,如果数据量过大,需要将部分数据先合并排序后,溢写到磁盘!如果设置了Combiner,Combiner会再次运行!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月29日 21时30分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LibTorch之张量操作与线性回归
2025-04-05
LibTorch之损失函数
2025-04-05
LibTorch之激活函数层
2025-04-05
LibTorch之网络层中的卷积层
2025-04-05
LibTorch之网络模型构建
2025-04-05
Libtorch在vs中c++相关配置
2025-04-05
LibTorch实现MLP(多层感知机)
2025-04-05
Libtorch常用代码
2025-04-05
LibTorch框架学习
2025-04-05
libtorch组成讲解之ATen、c10、at、csrc
2025-04-05
libvirt TLS
2025-04-05
libvirtd tcp 方式远程连接配置步骤
2025-04-05
libvirt报错处理及解决
2025-04-05
License Server上找不到指定版本的XenApp License
2025-04-05
License授权
2025-04-05
LifecycleException: Protocol handler start failed & BindException: Address already in use: bind
2025-04-05
liferay 去掉 portlet:actionUrl 跳转时的message
2025-04-05
Liferay7 BPM门户开发之21: 理解消息总线(Message Bus)体系
2025-04-05
Light OJ 1005
2025-04-05
LightningChart 图表控件图库
2025-04-05