导航↓ 相册|收藏博客|加入友情链接|给博主留言
畅享博客 > 沐兮---流程管理与流程应用 > 大数据时代下的Map-Reduce
2014/7/11 9:09:58

大数据时代下的Map-Reduce

现代的互联网应用引发了对极大规模数据进行快速处理的需求。在很多互联网应用中,数据相当规整,这就给应用并行化处理技术提供了大量机会。这其中重要的例子包括:

(1)Web网页按重要性排序,其中包括一个迭代的矩阵-向量乘法计算,其中矩阵、向量的维度达到百亿维;

(2)在社交网站上的朋友关系网络上进行搜索,该网络图结构包括上亿个节点和几十亿条边。

为处理上述这些应用,人们开发了一个新的软件栈。下层是一种新形式的文件系统,其主要特征之一是存储单位比传统操作系统中的磁盘块大很多,另一个特征是提供数据冗余机制来防止数据分布在上千块磁盘上时频发媒故障。在上述文件系统之上,是高级编程系统开发环境。在多个编程系统中,有一个核心的编程系统称为Map-Reduce。Map-Reduce的实现使得很多基于大规模数据的最常见计算能够在大规模计算机集群上高效实现,而且它能够支持计算过程的硬件容错性。

Map-Reduce是一种计算模式,并已有多个实现系统。可以通过某个Map-Reduce实现系统来管理多个大规模计算过程,并且同时能够保障对硬件故障的容错性。我们只需编写两个称为Map和Reduce的函数即可,系统能够管理Map或Reduce并行处理的执行以及人物之间的协调,并且能够处理上述某个人物执行失败的情况。基于Map-Reduce的计算过程如下:

1)有多个Map任务,每个任务的输入是DFS 中的一个或多个文件块,Map任务将文件块转换成一个键一值(key-value)对序列。从输入数据产生键-值对的具体方式由用户编写的Map函数代码决定。

2)主控制器(master controller)从每个Map任务中收集一系列键-值对,并将它们按照键大小排序。这些键又被分到所有的Reduce任务中,所以具有相同键-值对应该归到同一Reduce任务中。

3)Reduce任务每次作用于一个键,并将于此键的所有值以某种方式组合起来。具体的组合方式取决于用户所编写的Reduce函数代码。



查阅更多相关主题的帖子: 大数据 协同 时光

评论

您还未登录,不能对文章发表评论!请先登录