MapReduce的分治思想

来自计算思维百科
跳转至: 导航搜索

谷歌在全球有36个数据中心,服务器不计其数,如此庞大的计算和规模,是很多企业、不可想象的。它的三大核心技术是MapReduce、GFS(Google File System)、BigTable,其中GFS是google公司为了存储海量搜索数据而设计的专用文件系统,BigTable是Google设计的一种用来处理海量数据的非关系型分布式数据库系统,而MapReduce是一个并行计算编程模型,用于海量数据的的并行计。

MapReduce的名字源于这个模型中的两项核心操作:Map(映射)和Reduce(归约)。

可以用这样一个简单例子理解MapReduce。假设一篇文章,共4页,现需要统计其中计算思维和算法两个词出现的次数。可让两个人来做这件事,第一个人统计1、2页,第二人统计3、4,假设统计结果分别是:

1、2页:计算思维:出现5次、算法:出现3次;

3、4页:计算思维:出现3次、算法:出现4次;

最后将两个人的统计结果合并就得到这篇文章的单词出现次数:计算思维:8次、算法:7次。

在这个工作过程中,两个人所做的即是Map的工作,它将一组数据(文章)映射为另一组数据(单词统计);最后的合并操作是Reduce的工作,它对Map的计算结果进行归约,求和、求最大值等。显然,这一过程由划分、治理、合并三个步骤组成,是分治策略的完美应用。

为进一步理解MapReduce,图1给出了MapReduce处理大数据的流程。

                                9.2.5.png                                                                 

                                            图1 MapReduce处理大数据的过程