| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 【MapReduce】执行流程总结 -> 正文阅读 |
|
[大数据]【MapReduce】执行流程总结 |
MapReduce的执行流程
整个的执行流程可以如下图所示? 一、Map阶段Map负责分 1-1 MapTask阶段读取HDFS上的文件,根据逻辑切片(这里的逻辑切片不是HDFS上面的BLOCK,而是MapReduce自己定制的切片)来启动线程(MapTask),默认情况下和BLOCK大小刚好一致是128M,有几个逻辑切片,就启动几个线程(MapTask)。如果是分布式的系统,那么启动的MapTask的主机可能会不一样。夸张一点的说,如果HDFS的的文件有三个BLOCK,存放三个BLOCK的地址可能会不一样(假如分别存放在上海、天津、武汉)会启动3个MapTask线程,根据网络拓扑会就近原则寻找主机计算。 MapTask中的Mapper会将K1,V1变成K2,V2,然后进入shuffle阶段(Map段的shuffle) 1-2 Map端Shuffle1-2-1 分区 对Mapper中返回的K2、V2按照业务需求进行打编号,编号相同的K2、V2最终会存到同一个文件(Reduce)里。 1-2-1-1 环形缓冲区 已经打好编号的K2、V2进入到了环形缓冲区中,缓冲区就是一片内存,特点是一个字节数组byte【】,它可以重复的去存数据 大小是:100M,可以在配置里面设置,溢出阈值比例80%,如果达到80%,当他达到80%,继续往后进行继续的传递 为什么可以重复存数据呢
为什么会有环形缓冲区 产生的K2,V2的速度会大于排序排列的速度,为了去平复这个速度差,环形缓冲区就起到平衡速度差的作用, 1-2-2 排序 排序(快排),快排之后会形成很多的小文件(临时文件,全在硬盘上),这也就是MapReduce被人诟病所在。 产生的小文件再进行一次合并(Merge) 1-2-3 Combiner 每一个 map 都可能会产生大量的本地输出,Combiner 的作用就是对 map 端的输出先做一次合并,以减少在 map 和 reduce 节点之间的数据传输量,以提高网络IO 性能,是 MapReduce 的一种优化手段之一 ·因为合并之前的小文件是有序的,但是在合并之后、文件中的数据可能又是无序的、如果写了Combiner的话,会进行一次排序,一般的话Combiner是没有的,所以在合并小文件之后又会进行一次的排序(归并排序)。会生成临时文件,等着Reduce的拉取 1-2-3-1 归并排序 将快排后局部有序的数据再次排序,效率很快。 二、Reduce阶段Reduce负责合。 通过网络会拉取Map端的Shuffle生成的同一分区的临时文件,放入Reduce缓冲区。缓冲区也会溢出,溢出好多小文件,会对小文件进行Merge 2-1 分组(Reduce端Shuffle)会根据归并排序将相同Key的value放入同一组,生成K2[V2] 2-2 ReduceTask会将生成好的K2[V2]根据业务需求变成K3,V3。K3,V3会输出到结果文件(有可能是空文件)。 生成文件后,整个MapReuce执行过程就结束了。 三、总结MapReduce首先会读取我们HDFS上面的目标数据,进入Map阶段,Map阶段执行完会进入Shuffle阶段,进行分区、排序、Combiner、分组,结束后会进入到Reduce阶段、Reduce会拉取数据给ReduceTask进行处理、最终会把数据写入到结果文件。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:14:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |