Hadoop 之 Shuffle 机制详解

Hadoop 之 Shuffle 机制详解,第1张

Hadoop 之 Shuffle 机制详解

目录
      • Hadoop 之 Shuffle 机制详解
        • Shulffle 含义
        • Shuffle 图解
          • 官方图解
          • 简化图解
        • Shuffle详解
          • Map 溢写
          • 溢出数据
          • Reduce 拉取数据

Hadoop 之 Shuffle 机制详解 Shulffle 含义

在 Hadoop 中数据从 Map 阶段传递给 Reduce 阶段的过程叫 Shuffle,Shuffle 是 整个 MapReduce 框架中最核心的部分。

Shuffle 将数据从 Map 阶段输入到 Reduce 阶段的过程,所以 Shuffle 的 作用范围是Map阶段数据输出到Reduce阶段数据输入这一整个中间过程。

Shuffle 图解 官方图解

buffer in memory:内存缓冲区

partition ,sort and disk:分区、排序、磁盘写入

merge on disk:在磁盘上合并

简化图解

分为三步流程:

1、Map 溢写数据

2、溢出数据写入磁盘

3、Reduce 拉取数据进行处理

Shuffle详解 Map 溢写

1、Map 数据处理后进入 getPartition() 方法,将数据进行分区;

2、分区后的数据以键值对的形式写入环形缓冲区,环形缓冲区左边存放键,右边存放值,环形缓冲区默认大小为100M;

3、当环形缓冲区数据量达到存储的 80% 时,开始溢写数据,80% 就开始溢写是为了减少等待时间;

4、溢写后的数据对索引值按照字典进行快速排序。

溢出数据

1、溢写后的数据产生两个文件:spill.index、spill.out,为索引文件以及数据文件,Combiner 可选流程作用将传输数据分批传输,使得数据量减小;

2、对数据进行归并排序,归并后的数据依旧可以进行溢写,可以对数据进行N次溢写;

3、溢写后的数据进行压缩并写入磁盘。

Reduce 拉取数据

1、将数据由磁盘拉入 Reduce 中的内存中,内存不够放入磁盘;

2、将所有数据进行排序,并安装相同的 key 分组;

3、最终将数据放入 Reduce 方法中进行处理。

加入小猿大家庭,QQ:947117563,了解更多基础知识 !!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5698694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存