论文部分内容阅读
随着互联网和传统各个行业的深度融合,数据正在呈现井喷式的增长,在这个数据为王的时代,人们愈发的认识到海量的数据中蕴含的信息对于我们的工作和生活有多重要的指导作用。从这些海量的数据中快速的发掘出有用的知识并用于指导生活和生产是一个非常有价值的研究课题。显然传统的聚类算法处理的数据规模相对来说还是较少,但是聚类的效果还是不错的,但是在处理海量数据的时候,显然传统的串行算法无法迅速的完成挖掘任务,而且随着数据量的增大,运行速度变得更缓慢。本文的主要工作是通过研究传统的Canopy算法和K-medoids算法的优缺点,Canopy算法可以快速的实现粗聚类,能快速的得到几个Canopy中心,K-medoids算法对噪声的鲁棒性很好,但是需要事先指定K值,于是就将Canopy中心点作为K-medoids算法的初始聚类中心,实验表明该方案可行。但是在处理海量的时候,这两个算法就显得力不从心,于是在大数据平台上将传统的聚类算法并行化,首先将传统这两个算法结合起来在Hadoop平台上利用MapReduce编程模型实现它们的并行化(HCKM算法),虽说在一定程度上能较快的处理海量的数据,但是在实际问题中需要处理多次迭代的数据时,性能就变得差强人意。其次又在Spark平台上利用RDD的Transformation操作和Action操作将这两个算法实现其并行化(SCKM算法),能得到较好的收敛速度和结果的稳定性。本文将Canopy-K-medoids算法部署在Hadoop集群和Spark集群上运行。分别对传统K-medoids算法、HCKM算法和SCKM算法进行测试,并在加速比、准确性等方面进行比对,最终验证了基于Spark的改进的Canopy-Kmedoids算法(SCKM算法)具有很好的性能,能更快速、稳定的处理需要多次迭代的海量数据,处理的数据也具有更好的准确性。