《MapReduce: Simplified Data Processing on Large Clusters》论文研读
MapReduce 论文研读 说明 :本文为论文 《MapReduce: Simplified Data Processing on Large Clusters》 的个人理解,难免有理解不到位之处,欢迎交流与指正 。 论文地址 : MapReduce Paper 1. MapReduce 编程模型 MapReduce 是 Google 提出的一种用于处理和生成大数据集的 编程模型 ,具象地可以理解成一个 框架 。 该框架含有两个由用户来实现的接口: map 和 reduce , map 函数接收一个键值对,生成一个中间键值对集合, MapReduce 框架会将所有共用一个键的值组合在一起并传递给 reduce 函数, reduce 函数接收此中间键以及该键的值的集合,将这些值合并在一起,生成一组更小的值的集合 。 该编程模型中,数据形式变换可由以下模式表示: map: (k1, v1) -> list(k2, v2) reduce: (k2, list(v2)) -> list(v3) 注 :论文中该模式第二行表示为 reduce: (k2, list(v2)) -> list(v2) ,个人认为由于通常情况下 reduce 会对 list<v2> 做一些处理(特殊情况下不做任何处理,即 reduce 为恒等函数),生成一些不同的值,所以用 list<v3>