MapReduce 编程模型
“先 Map 再 Reduce”——这个简单的编程模型是分布式计算的经典范式。通过 WordCount 入门 MapReduce。
一、分治思想
- 1.1 单机处理大文件的困境
- 1.2 Map——分而治之,并行处理
- 1.3 Reduce——汇总合并
- 1.4 为什么叫 MapReduce——函数式编程渊源
二、WordCount 完整流程
- 2.1 输入——一行一行读
- 2.2 Map 阶段——切词 + 计数
- 2.3 Shuffle 阶段——按 Key 分组
- 2.4 Reduce 阶段——累加求和
- 2.5 完整的数据流图示
三、MapReduce 编程要素
- 3.1 Mapper 类——
map()方法 - 3.2 Reducer 类——
reduce()方法 - 3.3 Driver——配置 Job
- 3.4 输入格式——TextInputFormat
- 3.5 输出格式——TextOutputFormat
四、Shuffle 详解
- 4.1 Partition——决定数据去哪个 Reducer
- 4.2 Sort——按 Key 排序
- 4.3 Combiner——局部 Reduce 优化
- 4.4 Shuffle 是性能瓶颈
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 谜思录!