概述

介绍如下内容:

  • 什么是MapReduce
  • 基本工作流程

什么是MapReduce

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。

基本工作流程

MapReduce处理数据过程主要分成Map和Reduce两个阶段。首先执行Map阶段,再执行Reduce阶段。Map和Reduce的处理逻辑由用户自定义实现,但要符合MapReduce框架的约定。MapReuce处理数据的完整流程如下:

  1. 分片:对输入的数据进行分片,每个分片对应一个Map Worker,便于并行计算。
  2. Map:开始计算,并对计算的每个结果分配一个Key,并将键值对写入缓冲区。
  3. 如果缓冲区满则执行下列操作
    1. 分区:将结果按照Key进行分区。
    2. 排序:对同一个分区内的结果按照Key进行排序。
    3. 组合(可选操作):对同一个分区内的结果进行组合,如{<hello, 1>, <hello, 1>}最终会被合并为{<hello, 2>}
    4. 落盘:将上述操作的结果写入磁盘,这个文件称作溢出文件。
    5. 合并:将现有的所有溢出文件进行合并合并处理,最终生成一个经过了分区和排序的MOF(Map Output File)文件。
  4. 归约(Reduce):将MOF文件交给Reduce Worker进行处理,具有相同Key值的结果会被送到同一个 Reduce Worker。
  5. 结束:输出最终结果