首页 mapreduce原理
文章
取消

mapreduce原理

map任务的输出先输出到环形缓冲区,环形缓冲区到阈值之后会生成spill文件,这个spill文件是有序的(map的第一次排序),等所有输出都结束之后,会将所有的spill文件进行reduce的个数进行合并,假设一个 map 任务可能生成4个文件(这 4 个文件是有序的,map阶段的排序),一共又10个 map 任务,生成40个文件

这 40 个文件分成4组,每组 10 个文件然后排序合并(reduce的第一次排序)

第一阶段:Split输入分片阶段

第二阶段:Map阶段

Mapper

第三阶段:Shuffle阶段

shuffle

环形缓冲区,当数据达到一个阈值之后,会写入磁盘,形成一个spill文件

map shuffle

reduce shuffle

从 map 的输出到 reduce 的输入

Reducer

https://www.comsince.cn/download/bigdata/Hadoop_MapReduce_artitect.pdf https://liming96.github.io/2020/06/MapReduce-%E5%8E%9F%E7%90%86/ https://xyueji.github.io/MapReduce-Shuffle%E8%BF%87%E7%A8%8B.html https://www.jianshu.com/p/6b6a42a0740c https://cloud.tencent.com/developer/article/1023958 https://cshihong.github.io/2018/05/11/MapReduce%E6%8A%80%E6%9C%AF%E5%8E%9F%E7%90%86/ https://codeantenna.com/a/EFanjEJNHX https://blog.hotwill.cn/MapReduce%E5%8E%9F%E7%90%86.html https://jtlibrain.github.io/2021/04/02/hadoop/Hadoop-MapReduce-Secondary-Sort/ https://jtlibrain.github.io/2021/04/02/hadoop/Hadoop-MapReduce-Secondary-Sort/ http://ljchen.net/2019/04/27/hadoop%E5%8E%9F%E7%90%86/ https://xyueji.github.io/MapReduce-Shuffle%E8%BF%87%E7%A8%8B.html https://corbinhu.github.io/2020/04/25/Data-Tilt-Reasons-and-Solutions-in-MapReduce/ mapreduce 原理 site:github.io

https://blog.csdn.net/Will_cruise/article/details/120036815

本文由作者按照 CC BY 4.0 进行授权