MR (MapReduce) 执行流程如下:

  1. 输入数据分片:将输入数据分成若干个数据块,每个数据块的大小可以通过配置参数指定。

  2. Map 阶段:对每个数据块进行 Map 操作,将输入数据转换为一系列键值对。Map 操作可以分布式执行,每个 Map 任务处理一个数据块。

  3. Shuffle 阶段:将 Map 输出的键值对按照键进行排序,并将相同键的值聚合在一起,形成一个分组。这个过程需要将 Map 输出的数据传输到 Reduce 节点,因此也被称为数据传输阶段。

  4. Reduce 阶段:对每个分组执行 Reduce 操作,将分组中的值合并为一个输出值。Reduce 操作可以分布式执行,每个 Reduce 任务处理一个分组。

  5. 输出结果:将 Reduce 的输出写入到输出文件中。

Shuffle 过程是 MR 执行流程中的重要阶段,其主要作用是将 Map 输出的数据按照键进行排序和分组,并将相同键的值传输到 Reduce 节点。Shuffle 过程包括三个步骤:

  1. 分区 (Partition):将 Map 输出的键值对按照键进行分区,每个分区对应一个 Reduce 任务。

  2. 排序 (Sort):对每个分区内的键值对按照键进行排序。

  3. 归并 (Merge):将相同键的值合并为一个分组,并将分组传输到对应的 Reduce 节点。

MapReduce (MR) 执行流程与 Shuffle 过程详解

原文地址: https://www.cveoy.top/t/topic/fZwD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录