论文部分内容阅读
互联网行业的不断发展壮大所带来的数据风暴充斥着人们的生活,特别是由此而带来的商业价值吸引着众多人的眼球,而巨大的商业价值来源于对海量数据的提取分析,但是传统的数据挖掘技术在处理速度上已经不能很好的满足人们的科研和商业信息挖掘需求,云计算和并行化的快速发展为解决这些问题带来了希望。 目前,Apache基金会于2005年开发出来的Hadoop分布式计算架构在海量数据处理上已经发展的比较成熟,应用的也比较广泛,但随之而来也暴露出了一些内在的问题。由UCBerkeley的AMP实验室开发的基于内存的分布式计算架构Spark在对海量数据的处理和机器学习方面很好的弥补了Hadoop的缺陷,相对于传统的数据处理而言,在可扩展性,灵活性,数据的分割和迭代处理上有较大的改进,能够很好的适应并行计算相关的应用开发。 经典的数据挖掘算法在数据处理上一直比较受科研工作者的重视,特别是K-means聚类算法使用更加广泛,而算法性能优劣的衡量离不开它所依赖的数据处理架构,而数据处理架构的性能往往也是在算法的执行过程中得到体现。本文为了真正比较Hadoop和Spark两种数据处理架构的性能上的差异也是采用基于K-means的聚类算法的实现来比较的。 每种数据处理平台的设计,设计者都会考虑到平台的可扩展性、容错性以及灵活性等等,可扩展性又分为横向可扩展性和纵向可扩展性,本文重点比较了Hadoop和Spark两种数据处理架构,并就二者的I/O时间消耗以及总时间消耗给出了相关的理论模型和理论分析证明;实验部分就K-means算法的并行实现来对比二者的计算性能、纵向可扩展性、内存的消耗等方面。理论和实验研究表明,随着数据量的不断增长,Spark架构的性能更优,但是Spark的高内存需求对以后的应用研究也提出了一定的挑战,Spark的内存优化研究将成为以后的一个重要研究方向。