Hadoop入门之Mapreduce流程Shuffle过程
2017-08-25 19:14
666 查看
昨天大概讲述了下MR的大概流程(分片,Mapper,Reducer),其中mapper和reducer中间的衔接过程shuffle没有谈到,这次主要总结下这个过程.
1.maptask通过inputformat(可以自定义实现类)读取要处理的文件交给你写的mapper过程处理后到outputcollector进行一些列的操作后写入到HDFS中(操作如下)
2.将要写出的数据先写入到内存缓存区,通过指针来控制内存写出数据的量,在缓冲区内的数据可以进行一些列的处理操作
(1)拿到一堆数据后先用partition(可以自定义)进行分区操作,判断该key属于那个区,方便以后reducer来获取数据.
(2)分区后,对该区的数据进行排序比较后的排序操作(快排).
(3)如果有需要还可以再次操作后再次定义combiner过程,对数据进行归并操作,节省存储空间(其实就是继承的reducer)
3.根据文件大小,缓存区大小,可能会写入磁盘很多中间文件,这里接着进行merge操作,每次读取分区内部分文件,进行归并排序后最终一个maptask会将输出合并为一个各个分区内有序的文件
4.maptask结束后,MRAppMaster会根据设置启动相应的ReducerTask,根据分配的信息去拉取各个maptask中的分区文件到本地
5.获取到该分区的文件后,如上图有两个maptask那么在0分区上reducertask就会拉取到两份文件,这个过程和maptask文件合并过程很像,将两个文件分别缓慢读取进行归并排序后最后输出一个有序序列,提供给reduce过程使用,
6.reduce过程通过groupingcomparaor(可自定义)类来判断前后两个数据是否是同一个数据,进而判断一次该取多少数据给reduce过程处理
7.reduce处理后分别将结果写入到指定的目录下.结果MR过程
1.maptask通过inputformat(可以自定义实现类)读取要处理的文件交给你写的mapper过程处理后到outputcollector进行一些列的操作后写入到HDFS中(操作如下)
2.将要写出的数据先写入到内存缓存区,通过指针来控制内存写出数据的量,在缓冲区内的数据可以进行一些列的处理操作
(1)拿到一堆数据后先用partition(可以自定义)进行分区操作,判断该key属于那个区,方便以后reducer来获取数据.
(2)分区后,对该区的数据进行排序比较后的排序操作(快排).
(3)如果有需要还可以再次操作后再次定义combiner过程,对数据进行归并操作,节省存储空间(其实就是继承的reducer)
3.根据文件大小,缓存区大小,可能会写入磁盘很多中间文件,这里接着进行merge操作,每次读取分区内部分文件,进行归并排序后最终一个maptask会将输出合并为一个各个分区内有序的文件
4.maptask结束后,MRAppMaster会根据设置启动相应的ReducerTask,根据分配的信息去拉取各个maptask中的分区文件到本地
5.获取到该分区的文件后,如上图有两个maptask那么在0分区上reducertask就会拉取到两份文件,这个过程和maptask文件合并过程很像,将两个文件分别缓慢读取进行归并排序后最后输出一个有序序列,提供给reduce过程使用,
6.reduce过程通过groupingcomparaor(可自定义)类来判断前后两个数据是否是同一个数据,进而判断一次该取多少数据给reduce过程处理
7.reduce处理后分别将结果写入到指定的目录下.结果MR过程
相关文章推荐
- MapReduce过程、Spark和Hadoop以Shuffle为中心的对比分析
- Hadoop入门之Mapreduce部分流程解析
- Hadoop入门之Mapreduce过程的几个Demo
- hadoop概念-MapReduce各个执行阶段及Shuffle过程详解
- hadoop入门--图说MapReduce处理数据的过程
- Hadoop 学习研究(四):MapReduce shuffle过程剖详解及参数配置调优
- 【hadoop代码笔记】Mapreduce shuffle过程之Map输出过程
- hadoop初识之十三:shuffle过程及mapreduce 调优
- Hadoop学习之mapreduce:Shuffle 过程笔记
- Hadoop深入学习:MapReduce的Shuffle过程详解
- MapReduce过程、Spark和Hadoop以Shuffle为中心的对比分析
- 对比 Hadoop MapReduce 和 Spark 的 Shuffle 过程
- Hadoop MapReduce:详解Shuffle过程
- 对比 Hadoop MapReduce 和 Spark 的 Shuffle 过程
- 【Big Data - Hadoop - MapReduce】通过腾讯shuffle部署对shuffle过程进行详解
- Hadoop MapReduce的shuffle过程
- hadoop MapReduce模型的shuffle过程
- mapreduce的执行流程以及shuffle过程
- MapReduce过程、Spark和Hadoop以Shuffle为中心的对比分析
- hadoop入门学习系列之二hadoop的mapreduce的wordcount流程介绍