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

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

相关推荐
雪兽软件2 小时前
如何从目标到决策构建大数据战略?
大数据
数据皮皮侠3 小时前
中国城市间地理距离矩阵(2024)
大数据·数据库·人工智能·算法·制造
ToB营销学堂3 小时前
B2B营销自动化新解法:MarketUP聚焦高转化场景
大数据·运维·自动化
TK云大师-KK3 小时前
TikTok自动化直播遇到内容重复问题?这套技术方案了解一下
大数据·运维·人工智能·矩阵·自动化·新媒体运营·流量运营
昨夜见军贴06166 小时前
AI审核守护生命设备安全:IACheck成为呼吸机消毒效果检测报告的智能审核专家
大数据·人工智能·安全
Elastic 中国社区官方博客7 小时前
现已正式发布: Elastic Cloud Hosted 上的托管 OTLP Endpoint
大数据·运维·数据库·功能测试·elasticsearch·全文检索
D愿你归来仍是少年7 小时前
Flink 并行度变更时 RocksDB 状态迁移的关键机制与原理
大数据·flink·apache
昨夜见军贴06167 小时前
AI审核守护透析安全:IACheck助力透析微生物检测报告精准合规
大数据·人工智能·安全
新新学长搞科研7 小时前
【高届数会议征稿】第十二届传感云和边缘计算系统国际会议(SCECS 2026)
大数据·人工智能·生成对抗网络·边缘计算·传感器·学术会议
科技前瞻观察8 小时前
国内科技领先的企业有哪些
大数据