MapReduce 概述
- MapReduce 是面向大数据并行处理的计算模型、框架和平台。
- MapReduce 是一种编程模型
- 为解决大数据并行处理问题提供模板
- MapReduce 是一个编程框架
- 降低编写大数据并行处理程序的难度
- MapReduce 是一个高性能的并行计算平台
- 为大数据并行处理程序提供运行环境
MapReduce 原理
- 分治法:
- 把规模较大的复杂问题拆分为若干规模较小子问题
- 并逐个解决子问题
- 最后再将各个子问题的解决结果合并,得到原始问题的结果
MapReduce 角色
- Map:拆分后的小任务
- 统计每页中单词出现的次数
- 文件数据以 key-value 的形式输入 Map 程序进行分析
- Map 程序分析的结果也以 key-value 的形式输出
- Reduce:汇总每个 Map 的分析结果
- 汇总每页中单词出现的次数
- 数据以 key-value 的形式输入 Reduce 程序进行汇总
- Reduce 程序汇总的结果也以 key-value 的形式输出
- Job/Driver:组装 Map 和 Reduce
- 管理和指挥另外两种员工
WordCount 执行流程
Map 阶段:
- 文件数据被拆分后交给不同的 map 程序进行分析
- 数据以行为单位转换为 kv 格式交给 map 程序进行分析
- key 是行首字母的索引