论文部分内容阅读
互联网的规模与日俱增,与此同时产生了海量的相关数据,传统的数据挖掘技术由于受到计算机自身性能以及编程模型的约束,产生了瓶颈,在处理这些数据的时候显着无能为力。数据挖掘旨在从大量的数据中自动搜索隐藏于其中的有着特殊关系性的信息。面对具有高维度数据的海量数据时,单处理机受限于运算能力和内存容量,因此多处理机平行处理的解决方案就被提出来了。最常见的思路就是将大规模数据集划分为多个足够单机处理的数据子集,并将这些子集合理分发给各个单处理机节点处理,当每个节点对自己分配到数据子集的处理完成后,将各自的结果汇总合并,最终得到的是对整个数据集的处理结果。同单处理机相比,多处理机多个运算节点的并行处理数据模式可以显著提高数据挖掘效率。当前在数据挖掘并行化领域中有关方法主要有基于MPI、PVM的并行、基于CPU、GPU的并行。前者简单易用,但是对数据组织形式有较高要求,后者对硬件要求较高,不利于大规模推广。总体来说,这几种方法使得用户过多的专注于实现并行计算细节之中,使得用户无暇顾及其他方面。MapReduce是Google早在2004年就提出来的编程模型,它简化了开发并行程序的过程,推动了并行计算的广泛应用。Google的MapReduce是商业的系统,2008年Apache Hadoop开源云平台实现了MapReduce编程模型,同时也实现了类似GFS(Google File System,谷歌文件系统)的HDFS分布式文件系统。在近几年中,随着Hadoop开源平台的发展与广泛应用,使得大规模数据集的数据挖掘变得更加大众化,因此本文提出了基于Hadoop云计算平台来实现数据挖掘聚类算法的观点。云计算主要的思想是将计算任务分布在大量计算机构成的虚拟资源池上,使各种应用系统能够根据需要获取计算能力、存储空间和各种软件服务。本文的研究设想是通过部署云计算平台,并将聚类算法MapReduce并行化,同时对数据分割、任务分配、并行处理、容错等细节进行优化。由于聚类算法比较繁多,本文仅从k均值聚类算法入手,将传统的k均值算法与Canopy算法相结合,同时按照MapReduce编程模型将上述两种算法进行了并行化。改进后的算法应用在Hadoop云计算平台,通过对SogouC数据集和复旦中文数据集进行了文本聚类处理,实验表明MapReduce并行化后的Canopy算法大大提高的运行速度。因此,Canopy算法比起K均值算法更能胜任大规模数据集的聚类情况。