1. 引言
MapReduce 是 Google 提出的一种分布式计算模型,用于大规模数据集的并行处理。Hadoop 实现了这一模型,使其成为大数据处理的核心技术之一。本文将深入探讨 MapReduce 的工作原理,包括其执行流程、核心组件及优化机制。
2. MapReduce 概述
MapReduce 采用 "分而治之" 的思想,将大数据任务分解为多个小任务,并行处理后再合并结果。其核心分为两个阶段:
-
Map(映射):处理输入数据,生成键值对(Key-Value)。
-
Reduce(归约):合并 Map 阶段的输出,生成最终结果。
MapReduce 适用于 批处理任务,如日志分析、数据清洗、搜索引擎索引构建等。
3. MapReduce 工作流程
3.1 输入分片(Input Splits)
-
输入数据(如 HDFS 上的文件)被划分为多个 分片(Splits),每个分片由一个 Map Task 处理。
-
默认分片大小等于 HDFS 块大小(通常 128MB 或 256MB)。