Hadoop3:MapReduce中的Shuffle机制

一、流程图

ShuffleMap方法之后,Reduce方法之前的数据处理过程称。

二、图解说明

1、数据流向

map方法中context.write(outK, outV);开始,写入环形缓冲区,再进行分区排序,写到磁盘
reduce方法拉取磁盘上的数据,归并成最终的结果文件。

一般,设置几个分区(Partition),则生成几个文件。

2、缓冲区

此处的排序,采用快速排序算法,针对key的索引进行排序,按照字典顺序进行排序。

如果环形缓冲区设置的是100m,那么,实际存储数据的空间只有50m

以此,来计算环形缓冲区的IO输出次数

3、Combiner过程

缓冲区溢出的文件有两类,spill.indexspill.out,每个分区都会生成一组。

此处主要做了两件事,对每次溢出的文件,按分区进行合并,和并算法时的算法是归并算法

归并好之后,分别进行压缩处理,并写入磁盘。

而,该过程是一个优化流程,所以,是可选流程。并不是必须的。

4、Reduce处理流程

设置几个分区,就要对应设置几个reduce对应处理

这里的分组也是非必须
reduce按分区(Partition)主动去读取map的结果文件到内存中,如果内存不够,会溢出到磁盘。

这里主要是进行文件的合并,使用的是归并算法

三、整体说明

例如,有100万数据,我设计用5个mapTask去处理。那么,每个mapTask会处理20万条数据。

分区,设置为2个,那么,reduce个数就是2个。

文件数量的变化,如下图所示。

相关推荐
小羊没烦恼!6 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
一隅论数智6 小时前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
尧炎科技7 小时前
防潮抗变形,就选纯品梅花全桉多层板
大数据
程序员大阳8 小时前
副队长大数据教程(5)--集群情况下虚拟机网络配置
大数据·集群·nat·网路
自由能燃气设备8 小时前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远8 小时前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
嘉立创FPC苗工8 小时前
FPC与机器人的双向赋能,解锁智能装备进化新势能
大数据·人工智能·制造·fpc·电路板
AI职业加油站8 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
龙亘川9 小时前
一网统管AI平台民生业务实践:基于城市数字底座赋能公积金业务服务升级
大数据·安全·智慧城市·开源软件·数据可视化·政务
码流子9 小时前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构