论文部分内容阅读
互联网的快速发展带来了大量数据,依靠单机技术已经很难处理如此海量的数据,并行技术是处理海量数据的重要方法。鉴于小波在时频域上的局部化分析能力,以及小波聚类算法在数据处理中的良好表现,本文主要研究多机并行环境下小波聚类算法的设计和实现,使小波聚类算法具备并行处理海量数据的能力。 本文内容主要分为四部分。第一部分介绍了并行处理海量数据的Hadoop平台和基于MapReduce算法实现分布式计算的Spark平台。详细叙述了Hadoop平台的分布式文件系统(HDFS)和并行运算框架MapReduce,以及Spark的弹性分布式数据集(RDD)和应用程序。第二部分详细说明了聚类算法和小波变换的理论,以及二者结合的产物小波聚类算法。第三部分是本文的主要工作,分别将小波聚类算法与并行运算框架MapReduce和Spark结合,实现基于MapReduce的并行小波聚类算法和基于Spark的并行小波聚类算法。 为了测试设计的并行小波聚类算法性能,使用Java语言编写了基于MapReduce的并行小波聚类算法和使用Scala语言编写了基于Spark的并行小波聚类算法,并且搭建了由5台计算机(1个主节点,4个从节点)组成的Hadoop集群和Spark集群。然后随机生成数据,分别做了加速比实验、扩展性实验和检验聚类效果的实验。实验结果表明,基于MapReduce的并行小波聚类算法和基于Spark的并行小波聚类算法除了都具有较好的加速比和良好的扩展性外,比MLLib中的并行K-means算法的聚类效果具有更好Silhouette有效性指标和Calinski-Harabasz有效性指标,验证了设计的并行小波聚类算法是有效的。第四部分给出了一个在线广告系统中的实际应用案例,对比分析了本文设计的并行小波聚类算法和并行K-means算法之间的性能。