MapReduce工作流程+Shuffle机制

server/2024/12/25 8:24:59/

一、Mapreduce工作流程

(1)数据切片Split。数据切片数决定maptask并行度,默认情况下,一个切片大小=块大小。切片不是针对整体数据集,而是针对每一个文件单独切片,所以会有小文件问题(CombineTextInputFormat可用于小文件过多的场景,可以将多个小文件在逻辑上划分到一个切片中)。

(2)map。每个maptask并行执行,调用map方法对数据进行业务逻辑处理,并输出kv键值对。

(3)shuffle。shuffle过程从map方法输出outk outv键值对开始,键值对会被写入到环形缓冲区中,同时记录该条数据的分区信息(环形缓冲区一半记录数据的元数据信息,一半记录真实数据信息)当环形缓冲区写到80%的时候,环形缓冲区开始反向写入数据,并且已写入的80%数据开始溢写到磁盘(在真正写入磁盘之前,会在内存中首先按照key进行快速排序),一个mapTask可能会有多个溢写文件,这些文件在进入reduce之前,还会进行归并排序成一个大的溢写文件(如果有combiner,会在这先进行部分聚合)。reduceTask会从不同的mapTask主动拉取自己分区的数据,并对这些来自不同mapTask的数据再次进行归并排序,合并成一个大的文件,到这里shuffle阶段就结束了,之后就是调用reduce方法完成最终的聚合操作了。

(4)reduce。调用reduce方法,完成最后的逻辑聚合。

二、MapTask工作机制

一个MapTask总体上包含read、map、collect、溢写、merge五个阶段。

(1)read阶段。读取数据。

(2)map阶段。调用map方法处理输入的kv键值对。

(3)collect阶段。将map计算结果进行收集,写入到环形缓冲区。

(4)溢写阶段。环形缓冲区达到80%时会进行溢写,注意溢写前会先进行快排。

(5)merge阶段。一个maptask的多个溢写文件进行归并,形成一个大的溢写文件。

三、ReduceTask工作机制

一个ReduceTask总体上包含Copy、Sort、reduce三个阶段。

(1)Copy阶段。从不同的Maptask主动拷贝自己分区的数据文件。

(2)Sort阶段。对来自不同maptask的文件进行归并排序,整合为一个文件。

(3)reduce阶段。调用reduce方法,按照聚合逻辑进行聚合运算。

四、Shuffle机制

map方法结束到reduce方法之前的过程都属于shuffle过程。shuffle过程的理解主要就是三次排序过程(一次快排,两次归并)。

(1)一个maptask在溢写每个文件到磁盘前,都会在内存中对不同的分区内部进行快排,保证了每个溢写文件内部的分区内有序

(2)一个maptask可能会有多个溢写文件,每个溢写文件都划分了分区且分区内有序,这些溢写文件会进行归并排序合并成一个大的溢写文件,保留分区且分区内有序

(3)reduceTask会主动从不同的maptask拉取自己分区的数据,从不同maptask拷贝的文件在进入reduce方法之前还会进行一次归并排序。

五、部分调优参数

(1)shuffle中的缓冲区大小会影响溢写次数,缓冲区越大,溢写次数越少,磁盘的io越少,执行速度越快。缓冲区大小可以通过mapreduce.task.io.sort.mb参数进行调整。


http://www.ppmy.cn/server/153001.html

相关文章

EXCEL使用宏实现筛选重复项并对该行进行填充内容的操作

EXCEL使用宏实现筛选重复项并对该行进行填充内容的操作 需求 1.一个excel中有多张不同的sheet 2.筛选出sheet1中A、B列与sheet2中A、B列中非重复行 3.在非重复行对应的D列填充内容 原始表:需要排出专家1wbb在自己没课的时候可以听其他人课的时间,在专…

重温设计模式--模板方法模式

文章目录 一、模板方法模式概述二、模板方法模式UML图三、优点1代码复用性高2可维护性好3扩展性强 四、缺点五、使用场景六、C 代码示例1七、 C 代码示例2 一、模板方法模式概述 定义:定义一个操作中的算法骨架,而降一些步骤延迟到子类中。模板方法使得…

首次接触结构安全自动化监测系统,价格高吗?后期维护?

人工检测是依靠目测检查或借助于便携式仪器测量得到的信息,但是随着整个行业的发展,传统的人工检测方法已经不能满足检测需求,从人工检测到自动化监测已是必然趋势。 a. 从检测方式看 人工检测需要耗费大量的精力,从摆放检测工具到…

MongoDB教程001:基本常用命令(数据库操作和集合操作)

1.1 案例需求 存放文章评论的数据存放到MongoDB中,数据结构参考如下: 数据库:【articledb】 专栏文章评论comment字段名称字段含义字段类型备注_id(MongoDB自动生成)IDObjectId或StringMongo的主键的字段articleId文…

读书笔记~管理修炼-缄默效应

缄默效应:学会正确批评下属 员工明明犯了错误,却不及时告知你,总是拖到最后一刻无法弥补时才不得不承认出了问题——你遇到过这样的问题吗? 这其实是缄默效应在发挥作用。 在职场中,即使再扁平化的环境&…

【docker】docker desktop 在windows上支持 host模式

针对以前的情况,对于 Windows 和 macOS 用户,是不能够使用host模式的。只能在linux上才能够使用 更新日志 docker desktop 在4.34.0版本,开始支持host模式。

完全二叉树的权值(蓝桥杯2019年试题G)

给定一棵包含N个节点的完全二叉树,树上的每个节点都有一个权值,按从上到小、从左到右的顺序依次是A1、A2……An,(1,2,n为下标。)如下图所示。 现在,小明要把相同深度的节点的权值加到一起&#…

最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解LRMOP1-LRMOP6及工程应用---盘式制动器设计,提供完整MATLAB代码

一、麋鹿优化算法 麋鹿优化算法(Elephant Herding Optimization,EHO)是2024年提出的一种启发式优化算法,该算法的灵感来源于麋鹿群的繁殖过程,包括发情期和产犊期。在发情期,麋鹿群根据公麋鹿之间的争斗分…