原论文:MapReduce: Simplified Data Processing on Large Clusters (OSDI’04)
1. Map and Reduce
- Map:处理键值对,生成一组中间键值对
- Reduce:合并与同一中间键相关的所有中间值
- process overview:分割输入数据,组织程序在一组机器上的执行,处理机器故障,以及管理所需的机器间的通信
2. Introduction
- 如何并行化计算、分发数据和处理故障等问题,使得原本简单的计算被大量复杂的代码所掩盖,无法处理这些问题。
- 通过设计MapReduce,我们可以清晰表达我们试图执行的简单计算,同时隐藏关于并行化、容错、数据分布、负载均衡的相关细节。
- 主要贡献:提供一个可以自动进行分布式并行化大规模计算的接口,及其实现。
3. Programming Model
- MapReduce执行的计算以一组键值对作为输入,然后产生另一组键值对作为输出。执行的计算由两个函数完成:Map函数和Reduce函数,均由用户来编写实现。
- Map:应用在每个键值对上,产生一组中间键值对作为输出,然后MapReduce库会汇总关联于同一中间键I的中间值并将它们传送给Redu