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个。

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

相关推荐
袋鼠云数栈15 小时前
官宣!ChunJun 1.16 Release 版本发布!
大数据·经验分享·大模型
九河云16 小时前
跨境电商数字化转型:海外仓库存 AI 预警与多平台订单一体化管理实践
大数据·人工智能·数字化转型
新华经济18 小时前
正荣激光焊接机:破解中小型制造场景激光焊接精度与效率困局
大数据·人工智能·制造
嵌入式冰箱18 小时前
“未来杯”2025第五届高校大数据挑战赛赛题【AB题】详细分析
大数据·数学建模
好好研究18 小时前
Git命令
大数据·git·elasticsearch
传感器与混合集成电路18 小时前
精准钻进,高温无阻:随钻测井定向探管如何赋能极限能源勘探
大数据·人工智能·能源
TDengine (老段)18 小时前
TDengine 地理函数 ST_GeomFromText 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
神算大模型APi--天枢64618 小时前
智能协同与垂直深耕:聚合模型API算力平台重构软件开发生态
大数据·人工智能·科技·重构·架构·gpu算力
Elastic 中国社区官方博客19 小时前
使用 LangGraph.js 和 Elasticsearch 构建一个金融 AI 搜索工作流
大数据·人工智能·elasticsearch·搜索引擎·ai·金融·全文检索
Mxsoft61919 小时前
Flink CEP预警连锁故障,提前30分钟救场!
大数据·flink