MapReduce基础概念
1. MapReduce简介
数据驱动的方法正在彻底改变我们的世界:大量数据的获取带来了新的见解,并在商业、科学和计算应用中打开了令人兴奋的新机会。处理这些进步所必需的巨大数据量需要大型集群,这使得分布式计算范式比以往任何时候都更加重要。MapReduce是一种用于表达在大规模数据集上分布式计算的编程模型,也是一个用于在商品服务器集群上进行大规模数据处理的执行框架。该编程模型为设计可扩展算法提供了一个易于理解的抽象,而执行框架则透明地处理了许多系统级细节,包括从调度到同步再到容错。
2. 功能编程根源
MapReduce的根源在于函数式编程,这一点在诸如Lisp和ML这样的语言中得到了体现。函数式语言的一个关键特性是高阶函数的概念,或者说是函数可以接受其他函数作为参数。两个常见的内置高阶函数是 map 和 fold ,如图所示:
graph LR;
A[Input List] --> B{Map Function};
B --> C[Transformed List];
C --> D{Fold Function};
D --> E[Aggregated Result];
给定一个列表, map 函数将另一个函数应用于列表中的每个元素,而 fold 函数则迭代地应用另一个函数来聚合结果。例如,要计算一个整数列表的平方和,可以先使用 map <
超级会员免费看
订阅专栏 解锁全文
572

被折叠的 条评论
为什么被折叠?



