论文部分内容阅读
数据挖掘,也称数据库中知识发现,就是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的非平凡过程。目前,数据挖掘技术已经在金融、医疗、军事、管理等诸多领域的决策分析中被广泛应用。随着计算机和互联网技术的高速发展,数据量也呈爆炸性增长,极大的加重了数据挖掘技术的负担。云计算的出现,为数据挖掘提出了新的方式,其弹性化的计算能力,海量的存储能力,节约成本,提高效率方面的优点,成为解决数据挖掘技术所面临难题的有效方式。Hadoop是一个用于构建云计算平台的Apache开源项目,基于此项目的分布式计算平台已经非常稳定,并被广泛应用于很多领域。在Hadoop平台上,采用了MapReduce编程模型来进行分布式计算,使用HDFS分布式文件系统来实现文件存储。将传统的数据挖掘算法移植到Hadoop平台下,便可进行大规模数据的挖掘任务。Mahout便是Apache下一个全新的开源项目,提供了一些使用MapReduce编程模型完成的机器学习和数据挖掘算法,旨在帮助开发人员更加方便快捷地创建智能应用程序。因此本文首先从MapReduce编程模型和HDFS两方面来介绍Hadoop平台,分析其核心架构和运行机制。然后对Mahout进行了深入的探讨,仔细研究了Mahout内部数据表示模型,并以K-Means算法为例,分析其在Mahout中的并行化策略。最后,使用路透社21578新闻集,对它进行聚类来验证该算法的有效性,并分析实验结果,对K-Means算法聚类结果从不同距离度量方式,运行时间,迭代次数等角度,进行评估。并使用不同数据量数据,分别在串行和并行两种模式下运行K-Means算法,比较其效率。