K-Means并行计算聚类算法实现
时间:2019-01-07 17:46 来源:毕业论文 作者:毕业论文 点击:次
第1章 绪论1.1研究背景及意义 截止到2011年末,根据估算全世界共产生了1.8ZB的数据(可以装满18亿个1TB硬盘),按摩尔定律,这个值在2020年将达到可怕的35ZB。我们现在所处的时代是一个“信息爆炸”的时代,因此大数据挖掘与处理的重要性日益彰显,大数据挖掘是指从海量的数据中提取或挖掘出有用的知识(也称为模式),有关大数据挖掘的软件已应运而生:如大数据的代名词Hadoop,以及新兴的Scan、Spark等。32384 我们本文所研究的Spark最初由加州大学伯克利分校的APMLab实验室所打造,而后又加入到Apache孵化器项目并最终于2014年2月成为其中的顶尖项目之一。它是作为一个专门面向实时分布式计算任务的项目,是对Hadoop的补充。目的是让数据分析更加快速。论文网 在Hadoop生态与Spark生态下都可以采用聚类分析算法,聚类算法是数据挖掘中一种相对常见的技术,它是将数据对象划分成多个不同的个类,在同一簇中的多个对象之间极为相似,不同簇中对象则相似性较差。聚类分析目前已广泛地用于多个领域,如市场调研、图像处理、计算机互联网中产生数据的分析[1]。在市场方面,聚类分析可用于对市场统计的数据进行分析进而制定市场营销策略,发现潜在客户;在图像处里中,聚类分析可以用于分类医学影像,判断患者的身体健康状况;在数据分析方面,聚类分析适用于Web的文档分类以及社交媒体中团体活动的分类。传统意义上的聚类算法是通过聚类计算和重复迭代来进行聚类分析。在这种情况下,一旦数据量巨大,就会导致聚类时间过长,计算效率过低的情况。并且传统的聚类算法很大程度上受限于计算机CPU的处理速率以及内存等资源,算法的效率已经不能满足计算大量数据的要求。因此,科学家们研究出了一种新型的有效的并行聚类算法,它能够同时利用多台计算机进行计算,并行地处理数据,由于提高了处理数据的速率,这种算法初步满足了目前数据分析扩展性等需求。并行聚类算法的研究对于提高海量数据处理时的时效性、增强聚类分析地效率等方面意义重大。而具有成本低、易部署和伸缩性等优势的集群环境则是一种较为常见并且行之有效的并行计算环境,在集群环境下的研究具有很高的应用价值。对于建立海量数据挖掘也有一定的参考价值。 1.2 大数据框架的发展现况 目前国内外对于大数据框架的搭建以及基于Hadoop/Scan/Spark生态的聚类算法有很多,大多数研究成果出自美国,特别是加州大学伯克利分校。在现实中应用较为广泛的有以下几类: Message Passsing Interface (MPI): 目前,研究人员已经提出并构建了多个基于集群环境的并行计算框架。Message Passsing Interface (MPI)作为通用的并行计算编程接口中的一种,在高性能计 算中得到广泛的应用。它提供低层次的并行应用接口,用于程序的通信。基于MPI的并行应用实现时要注意逻辑辑的实现、底层的结点通信的问题。 MapReduce: MapReduce的成功与Google和开源社区的推动是紧密相关的。MapReduce最初最初是Lisp语言中被使用的专业性术语,后来在上文所述的MPI和其它的一些模型中也被使用过。它提出的是一种并行编程处理海量数据的模型,它使得开发人员能够用一种相对简单的编程模型进行并行数据处理。基于该模型,开发人员可以不过多甚至有些时候忽略并行计算底层的实现,而只需将工作重点放在应用业务的逻辑实现。MapReduce计算模型具体实现便是Hadoop/Spark等。也就是说本论文所主要探讨的Spark聚类实现最初就是建立在MapReduce模型之上的,这也使得对于MapReduce模型需要有一个充分详尽的说明。概念"Map(映射)"和"Reduce(归约)",它们思想的主要部分都是从函数式编程语句中演变而来的,还有一些是从矢量编程语言中借鉴过来的。这些语句的引入使得就算编程人员不会分布式编程,也可以将自己的程序在分布式平台上进行实现。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组[2]。 (责任编辑:qin) |