MapReduce 是 Hadoop 的核心分布式计算框架,其核心思想是通过分治(Divide and Conquer)处理海量数据。以下从技术架构、执行流程、编程模型和特性展开解析:
一、核心设计思想
- 分而治之模型
- Map 阶段:将输入数据拆分为独立分片(默认 128MB),由多个
MapTask并行处理,输出中间键值对(k2, v2)。 - Reduce 阶段:对相同
k2的中间结果聚合,由ReduceTask执行归约操作,生成最终结果(k3, v3)。
关键特性:通过拆分任务实现并行计算,屏蔽分布式细节,开发者只需关注业务逻辑。
- Map 阶段:将输入数据拆分为独立分片(默认 128MB),由多个
二、作业执行流程
- 提交阶段
- 客户端提交作业至 YARN ResourceManager,生成
MRAppMaster(管理任务生命周期)。
- 客户端提交作业至 YARN ResourceManager,生成
- Map 阶段
- map过程:
MapTask读取 HDFS 数据分片,执行用户自定义map()函数,输出中间结果到本地磁盘。 - Shuffle 过程:将 Map 输出的
(k2, v2)按 Key 哈希分区,排序后通过网络传输至 Reduce 节点。
- map过程:
- Redu
浙公网安备 33010602011771号