论文部分内容阅读
聚类分析是一种常见的数据挖掘技术,它是基于数据对象的特点对数据集进行分类,将相似的数据对象聚在一起。聚类分析已广泛地应用于诸多领域,如市场研究、图像处理、互联网数据分析等。这些领域中的“数据爆炸”使得聚类分析计算极为耗时,不能有效地满足数据挖掘的时效性需求。因此,需要考虑使用并行计算技术解决这个问题。K-Means聚类算法是一种广泛应用的聚类分析方法,在多个应用场合中聚类效果良好。但随着聚类数据规模的增长,K-Means聚类的迭代次数增加,整个计算的耗时会加长。为了使得K-Means算法能够有效的应用于海量的数据集的聚类分析,本文研究K-Means算法的并行化方法,使得数据聚类可以在多台计算机上并行执行。MPI作为标准的消息传递库,提供了应用底层的消息通信接口,支持应用程序间的通信。它给并行应用的开发带来了更多的灵活性和可控性。Hadoop是一种开源的分布式计算框架,它采用了Google的并行编程思想MapReduce,将并行处理、任务调度、动态容错等模块封装成底层库,提供了一种高层次的编程接口,这使得开发人员只需关注并行应用逻辑;Spark是一种集群式的数据分析平台,它提供一种分布式数据集(RDD)及高层次的编程接口用于构建并行的数据分析应用。在本文中,我们分析了上述三种计算平台的特点,利用它们的技术实现了并行的K-Means聚类算法,并分析单机与并行算法的性能以及三种计算平台下并行算法执行的性能差异。实验结果表明三个计算平台下并行K-Means算法的性能在大数据集上都具有良好的加速比和扩展比;而在三种计算平台之间,基于MPI的并行算法计算效率最高,但计算过程不具有容错性;Hadoop平台下的并行聚类算法执行效率较低,计算过程支持任务的容错;Spark平台下的聚类算法执行性能接近于MPI,且聚类过程支持容错,适合用于海量数据的聚类分析应用。