论文部分内容阅读
随着技术的日新月异,各种新思想在搜索引擎领域不断的提出。由于搜索引擎所需要处理数据量极大且这些数据更新速度极快,传统的串行计算已不能满足搜索引擎中的计算需要,因此大规模搜索引擎中无一例外的采用了并行的方式。而在这种前提下并行编程的高难度,成了新思想应用到实际中的主要障碍,为此Google提出了一种MapReduce的方法来解决这个问题。 本课题研究的目的在于实现了一种通用的并行架构模型——MapReduce模型,使得开发人员在开发新的并行程序时可以脱离繁琐的并行编程,降低其复杂度,提高新思想应用的速度,并在MapReduce模型的基础上加以扩展。 本课题对搜索引擎中所需要的并行计算进行了分析,并在分析传统并行算法的基础上,实现并扩展了MapReduce框架。本文主要研究内容如下: (1)分析搜索引擎中并行运算,根据其特点得到需求。 (2)分析传统并行算法,结合其特点分析MapReduce思想,并根据其思想设计实现了基于C++的MapReduce系统 (3)在网页内容的模糊去重算法应用中发现MapReduce架构在Mapper结果的归并过程调度上的不足,并设计实现了相应的解决方案,在原有的MapReduce框架的基础上进行了扩展。 (4)根据实际应用,分析MapReduce实际效率。 通过大规模试验,最终我们发现:在实际应用中随着MapReduce框架的引入,用户所编写并行程序的代码量大幅度降低,在一些应用中用户所需要编写的代码量由原来的数百行降低为几十行。同样开发时间大幅度的缩短,在一些开发中,开发时间从原来的几周到几个月缩短到几天到几周,在某些情况下甚至缩短为一天。