数据岗位面试题更新 2026-08-05

请描述 MapReduce 的核心执行过程,并列举其中的关键处理阶段。

数据技术原理

考察说明

考查对 MapReduce 执行框架和阶段划分的理解。

回答思路

  1. 【回答框架 1】MapReduce 是分布式计算模型,核心思想是分而治之。整体流程:输入分片 -> Map 阶段 -> Shuffle 阶段 -> Reduce 阶段 -> 输出。
  2. 【回答框架 2】Map 阶段:输入数据被切分成若干分片,每个分片由一个 Map 任务处理,Map 函数将输入键值对转换为中间键值对输出。
  3. 【回答框架 3】Shuffle 阶段:包括分区、排序、合并和归并。分区决定中间结果发送到哪个 Reduce 任务,排序保证按键有序,合并减少传输数据量,归并在 Reduce 端合并相同键的中间结果。
  4. 【回答框架 4】Reduce 阶段:Reduce 函数接收具有相同键的一组值,经过处理后将最终结果写入输出文件。
  5. 【回答框架 5】整个过程由 JobTracker(或 ResourceManager)调度,任务失败会重试,数据本地化可减少网络传输。
  6. 【关键点 1】MapReduce 包含 Map、Shuffle、Reduce 三大阶段。
  7. 【关键点 2】Shuffle 阶段包含分区、排序、合并、归并四个子步骤。
  8. 【关键点 3】Reduce 输入是按键分好组的数据。
  9. 【关键点 4】框架自动处理并行化、容错和调度。
  10. 【易错点 1】不要把 Shuffle 单独称为一个独立阶段,它横跨 Map 和 Reduce。
  11. 【易错点 2】不要忘记分区和排序是 Shuffle 的核心职责。