基于MapReduce的海量数据K-means聚类算法 (2)

随着计算机技术、移动互联网、物联网等信息科学技术的不断发展,现代社会的人们的生活已经与网络密不可分了。而网络媒体、电商服务等可以说已经深


   随着计算机技术、移动互联网、物联网等信息科学技术的不断发展,现代社会的人们的生活已经与网络密不可分了。而网络媒体、电商服务等可以说已经深入到人们的生活中了。当我们使用浏览器看直播,用搜索引擎查找信息,或在电子商务平台下单购物时,这些基于互联网的网络使用足迹大部分都会以数据的形式被运营商存储记录。随着近年来计算机互联网的不断普及,这些数据正以几何级数态不断猛增。在如今的信息时代,数据就是价值,互联网用户产生的各种数据里隐藏着的信息有着巨大的商业价值。而近年来十分火热的数据挖掘就是解决如何从数据中找出有价值信息与知识的学科,而由于计算机的普及,各种应用数据的爆炸式增长,数据挖掘的对象已经不是单台计算机的计算能力能够处理的了。这就需要高效的分布式存储系统与相应的分析平台,这样的存储系统与分析平台就是当下流行的云计算技术中的一种。本章节将首先阐述本文的选题背景,包括云计算的概况、MapReduce的介绍、数据挖掘中的聚类分析。然后介绍相关内容的研究现状,包括MapReduce的研究现状,高维数据聚类的研究现状,本课题要求研究的k-means算法的大致情况。最后,将介绍本课题的主要进行的工作、创新点与组织框架。

1.1  选题背景

云计算是近年来提出的热门概念,被称为继PC、互联网之后的第三次信息化。从本质上说,云计算可以看作是一种计算模式,它是网格计算、分布式计算与并行计算的发展[1]。云计算技术主要包括分布式存储、分布式编程、分布式文件系统与虚拟化等方面的技术支持,它通过网络按需为用户提供弹性的,廉价可伸缩的计算服务。云计算也代表了一种资源利用模式,以降低开销为目标,将虚拟化作为核心,使用动态可扩展的网络应用层基础设施,串联价格低廉的商用机器实现高性能分布式存储运算功能,只需少量的管理代价就可以实现资源发布。Google提出的云计算基础架构包括分布式存储系统BigTable、Google分布式文件系统(GFS)、分布式编程模式MapReduce等技术,其中GFS利用分布式存储方式存储数据,通过扩展DataNode使得文件系统具有高扩展性。

而MapReduce编程模式作为Google云计算核心架构之一,是2004年Google公司提出的处理海量数据的一种变成模型与实施方案,MapReduce模型由底层完成数据分割、任务分配、以及容错等功能,具有良好的可扩展性[15]。由于其高度抽象的特点,对于用户有着友好的使用接口,运行时有完备的运行支持库,用户进行编程时不用像使用传统并行计算模型一样考虑底层细节。这大大减少了编程难度,使得并行编程更易于学习,降低了并行计算的门槛。而由于Google实现的MapReduce不是开源的编程模型,于是Apache Software Foundation在其开源实现的Nutch搜索引擎项目中引入了Hadoop,Hadoop作为MapReduce计算模型的开源实现,以HDFS(Hadoop Distributed File System)、MapReduce编程模型、分布式数据库Hbase作为核心架构,为用户在廉价商用计算机集群上搭建云计算平台提供了技术基础。而本课题的就是基于Hadoop平台进行的。

数据挖掘是近年来大数据环境下十分热门的一个领域,数据挖掘又称为数据库的知识发现过程,是从海量的、有噪声的、看似无规律的数据集中发现有价值信息与知识的过程。而聚类分析是数据挖掘处理方法中重要的也是基本的一种,同时在模式识别、网络日志分析、文本分析等领域有重要地位。聚类算法是一种无监督的机器学习方法,聚类的结果将待处理数据集分为若干簇,在有一定的相似性度量的前提下,簇中元素的相似度较高而簇间元素相似性低。聚类分析对于知识与信息的发掘有着重要意义,由于其无需任何先验的知识就能将数据归类,同一类别的数据理论上有较高的相似性,有利于开发人员从中总结出有价值规律与信息。而基于划分的K-means算法是聚类算法中简单有效的算法之一,而K-means算法受限于初始聚类中心的选择的不确定性,容易造成聚类结果的局部性最优,同时由于其受边缘噪声点干扰较大,若是用传统的随机选取初始聚类中心方法,万一选取了噪声点,对于聚类结果的准确性将是毁灭性打击。