MapReduce简介
- MapReduce是一种编程模型,是面向大数据并行处理的计算模型、框架和平台。
- MapReduce有着分布可靠、封装了细节,基于框架API编程、跨语言的优点。
- 在各大运营商,中大型互联网公司、金融银行类公司、各大云平台的分布式计算中都可以应用。
- 代码实现:经典案例WordCount
MapReduce的执行流程
- Map-per阶段
- 将文件分片split
- 去除文件的每行line
- Map阶段
- 按需求将数据打散
- 按Partition进行分区、排序
- 进行combine
- Reduce阶段
- 将同分区数据聚合在一起
- 排序和合并
- 按需求规约
- 输出成结果文件
关于Shuffle
- Shuffle: 数据混洗
- 将同分区的数据聚合在一起,排序,合并