MapReduce 1.0 计算框架主要由三部分组成,分别是编程模型、数据处理引擎和运行 时环境。它的基本编程模型是将问题抽象成 Map 和 Reduce 两个阶段,其中 Map 阶段将输 入数据解析成 key/value,迭代调用 map() 函数处理后,再以 key/value 的形式输出到本地 目录,而 Reduce 阶段则将 key 相同的 value 进行规约处理,并将最终结果写到 HDFS 上 ; 它的数据处理引擎由 MapTask 和 ReduceTask 组成,分别负责 Map 阶段逻辑和 Reduce 阶段逻辑的处理 ;它的运行时环境由(一个)JobTracker 和(若干个)TaskTracker 两类服务 组成,其中,JobTracker 负责资源管理和所有作业的控制,而 TaskTracker 负责接收来自 JobTracker 的命令并执行它。该框架在扩展性、容错性和多框架支持等方面存在不足,这也 促使了 MRv2 的产生。