论文部分内容阅读
随着社会互联网技术和计算机技术的蓬勃发展,大量的数据信息被保留下来,各种各样的信息呈现出了爆炸式的增长。面对这样海量的数据,如何高效可行的进行数据挖掘是当下社会面对的一个棘手的问题。传统可靠准确的串行数据挖掘算法可以处理小规模数据,但不一定适合处理大规模数据。在这样的要求下,并行数据挖掘算法应运而生,作为并行计算的一个重要技术工具Hadoop并行框架越来越引起商业界和学术界的重视,利用Hadoop并行框架研究数据挖掘算法也是学术界的一个热点问题。Apriori算法做为最典型的关联规则挖掘算法,在大规模数据下挖掘时主要面临的技术瓶颈是庞大的数据量多次遍历导致I/O瓶颈,进而导致计算时间大量增加。而针对Aprior算法的优化算法目前已有很多,主要的并行算法包括CD(count distribution)、 DD(data distribution), CaD(candidate distribution)算法等。PageRank算法作为商业搜索引擎的核心算法,在面临数量飞涨的网页数据时,也难以避免处理多轮迭代和遍历网页的耗时开销。就PageRank算法处理大规模数据时的问题,学者已有的成果也很多,例如将PageRank算法直接移植到Hadoop平台之上,但是MapReduce自有其分布式计算的特点,单纯套用可以实现并行,但是不一定达到效果最佳。本文重点在于对Apriori算法和PageRank算法在Hadoop平台下的移植和优化做了深入的研究:Apriori算法结合Hadoop平台MapReduce框架实现分布式计算,在每一轮迭代时,利用DataJoin并行连接和剪枝运算实现下一轮候选集的产生。使得Apriori算法产生频繁项集的整个过程并行化,并行化粒度得到提高。本文将PageRank算法的输入做了处理,从之前单个网页输入变为一个网站输入,处理过程引入了三个层次的数据压缩方法,从而减小数据通信量和存储量。针对以上提出的优化算法,本文还利用不同的数据集和不同的分布式集群试验了算法的性能,并将之前的算法与本文提出的算法做了比较。实验表明,本文提出的算法在数据适应性和算法效率上都有提高,缩减了算法执行时间,有一定的实际意义。