基于云计算的大数据处理及关键技术
2018-05-08蒋泽艳
蒋泽艳
摘要 现阶段,云计算在以其自身的诸多特点,在各个领域中获得广泛应用。基于此点,文章首先对云计算进行概括性介绍,在此基础上,对基于云计算的大数据处理及关键技术进行论述。期望通过本文的研究能够对大数据处理效率的提升有所帮助。
【关键词】云计算 大数据 聚类算法
1 云计算概述
最早提出云计算这一概念的是谷歌公司的首席执行官,它是一种全新的计算模式,可为用户提供付费服务。云计算的典型服务方式有三种,软件即服务(SaaS)、平台即服务(PaaS)以及基础架构即服务(lssS),这三种服务方式也可以说是云计算所具备的主要功能,在诸多领域中得到了应用实施。现阶段,云计算已经逐步成为大数据服务的基础平台,其所提供的资源层次性如图1所示。
用户可对较高层次的云服务进行直接调用,也可对封装在较低层次中的服务资源进行调用,据此构建定制云服务。如,用户可从软件即服务(SaaS)的提供商处,对已有的云服务进行调用,或是使用平台即服务(PaaS)对应用进行开发。云计算是以云平台作为依托,按照用户所需的计算资源为他们提供相应的服务,美国国家标准与技术研究院(NIST)依据部署模式,对云计算平台进行具体分类,即公有云、私有云和混合云。不同类型的云计算平台有着自己的特点,如公有云的提供商,可借助互联网为用户提供云服务,而用户在对公有云中的资源进行使用时,则需要支付一定的费用;私有云是一种特定的云计算解决方案,针对的群体为一些特定的企业或是用户,以定制的方式为他们提供云计算服务。通常情况下,用户可以自行搭建私有云;混合云实质上就是公有云和私有云的一种延伸,它的存在主要是为了满足企业的某些业务需求。
2 基于云计算的大数据处理及关键技术
在基于云计算的大数据处理中,数据挖掘是关键技术之一,下面本文着重对数据挖掘中的密度峰值聚类算法(以下简称该算法)进行分析。
2.1 算法的特点
与传统的聚类算法相比,该算法具有如下特点:交互性、无迭代性、无依赖性。
2.1.1 交互性
这是该算法最为显著的特点之一,与常用的K-Means聚类算法有所不同,该算法在执行前,需要用户对聚类的个数k进行指定,当计算出各个点的p与6值后,用户可按照这两个值对聚类的个数进行确定。
2.1.2 无迭代性
该算法与K-Means算法相比,其一般只需要对数据集进行三次遍历,就能完成聚类分析,这三次遍历分别为密度值计算、斥群值计算和聚类分组,无需进行多次迭代。
2.1.3 无依赖性
该算法是以密度作为聚类的主要依据,对聚类形状无任何要求,当发现能力较强的簇时,无论其形状如何,均可在多种环境的聚类中适用。该算法能够发现图2中两种形状的聚类。
2.2 密度峰值聚类算法
该算法是一种新型的聚类算法,其具有较为新颖的思想,它在进行计算的过程中,所依据的是以下几种假设:第一种假设是聚类的密度中心点的密度比附近点的密度高;第二种假设是该中心点与数据中密度超过它的点之间有着较远的距离。在该算法中,所有点均具有两个属性,一个属性是密度值ρ,另一个属性是斥群值δ。ρ越大则表明该点越有可能是聚类的密度中心,而δ越大,则表明该点可能代表一个新的聚类。对于分布在空间中的数据而言,一个簇与另一个簇之间一般都是通过低密度区来区分的,也就是说,δ越大,该点越有可能成为新的聚类。在待聚类的数据集中,局部密度ρ.的计算公式如下:
式(1)中的参数dc>0时,为截断距离,这是一个可由用户进行自定义的距离临界值,根据专家学者的研究,给出了该参数较为合适的经验值,举个例子对其进行具体说明:假设一个数据集中共有100个点,这些点有3950中组合方式,对它们的组合距离进行排序,然后在50-100这一区间内,选取出组合距离为de值,由式(l)可知,局部密度ρ1代表了数
依据数据集当中的ρ和δ能够绘制出一个2D决策图,ρ为横轴坐标,δ为纵轴坐标。在该决策图中,分布着数量众多的决策点,按照点的具体分布情况,ρ和δ都比较大的点通常会分布在图的右上角,可将这些但作为聚类的中心点。之所以这样做的主要原因是,聚类中心点的密度都比较大,其依附点通常分布在其它的聚类当中。正因如此,使得聚类中心点的δ较大,会分布在图的上半部分,结合以上这两个方面的因素,可以从决策图中选取右上角的点,作为聚类中心点。随后再按照数据集当中,各个点之间δ的依附关系,便可以将每个点发送到其所依附点的聚类中,在此基础上,可推出数据集中任意一点所属的聚类。
通常情况下,大部分数据集当中,往往会存在一些并不属于任何聚类的点,这些点被称之为离群点,它们主要分布在决策图的左上角位置,这些点周围的点数量非常少,有的点周围甚至并不存在任何的数据点,其密度值p较小。同时离群点与聚类点之间的距离较大,其斥群值也比较大,基于上述两个原因,可以选取决策图中右上角的点作为离群点。
在上文中,对该算法的特点进行了简要介紹,虽然其优点较为明显,但在实际应用中发现,其也存在一定的不足,主要体现在,该算法的实现必须对数据集中每个点的ρ和δ进行计算,在进行具体计算的过程中,需要对数据集中任意两点之间的欧式距离进行测量。当需要对维度较高度的大数据进行处理时,该算法的实现需要完成大量欧式距离计算,随着计算量的增大,在单机环境下,可能无法正常运行,由此对算法的性能和使用效果造成了一定程度的影响。此外,该算法是基于单机的运行环境进行设计的,也就是说,该算法无法对分布式数据进行有效地处理,为了解决这一问题,可对该算法进行分布式扩展。
2.3 分布式扩展聚类算法的实现
分布式计算是一种实用性较强的计算方式,具体是指多个处理及存储的软硬件系统,多个程序或并发进程在集中控制的方式,对任务进行处理。在分布式计算的过程中,完整的程序被分割成若干个部分,并在同一个网络环境下,对程序进行加以执行。这种计算方式归属于并行计算的范畴,它所强调的是异构性,简而言之,就是具有不同延时的计算机网络。Hadoop是分布式计算框架,其能为应用程序提供较为稳定的接口。近年来,随着云计算的快速发展和广泛应用,使得该框架的使用人群逐步增多。分布式文件系统HDFS和MapReduce分布式编程模型是该框架的核心。为对海量数据进行高效处理,程序设计人员采用很多专用的算法,下面本文基于Map Reduce模型设计分布式密度峰值聚类算法,并在开源框架Hadoop上实现该算法,具体的实现过程如下:
2.3.1 数据预处理
由上文分析可知,数据集中的参数dc>0为截断距离,式(1)给出了密度值的计算公式,基于以上前提条件,在对数据进行预处理的过程中,应当先对参数de的大小进行确定。可对样本中各个点之间的距离进行分别计算,并将距离值按照从小到大的顺序进行排列,随后从中选取出1.5%的位置处作为参数de值。
2.3.2 对密度值ρ进行计算
基于分布式扩展的聚类算法对数据集中每个点的密度值进行计算时,需要两个MapReduce作业来完成,其中一个是对点间的距離进行计算,据此判断各点之间距离的关系是否小于参数de,因对点间距离的计算分布于不同的计算机上,从而使得各点的参数de范围内的点也会分布在不同的计算机上,故此,需要借助第二个作业对参数de范围内的点数进行合并处理,由此获得最终的密度值。在第一个个MapReduce作业中,欧式空间的距离呈现出对称性的特点,所以仅需要对上三角或是下三角进行计算即可,无需重复计算。数据集中点间组合的实现方法有以下两种:第一种是对两个记录进行单独组合,在该实现方法中,每个数据对象的副本个数均为N·1,这是因为该点必须与其它数据对象进行组合,方可计算出点间的距离。第二种实现方法是对两点间的距离进行计算,并对距离之间的关系进行判断。通过对这两种实现方法的副本个数进行比较后发现,第二种方法的副本数量更少一些,所以可选择该方法对点间距离的数据组合进行计算。
2.3.3 对斥群值δ进行计算
在对数据集中每个点的斥群值δ进行计算的过程中,因计算机密度值时需要对点间的距离进行计算,所以,在计算斥群值δ无需在对点间距离进行计算。需要注意的是,虽然可以省去这个计算环节,但必须要将密度值的计算结果进行保存。可将数据集的空间开销设定为O(N2),并在对斥群值δ进行计算时,预先对该距离矩阵进行读取。通常情况下,当数据集的规模较大时,它的距离矩阵也比较大,需要将之存储在分布式文件系统当中,由此势必会造成网络输入与输出的开销则高达。同时,在对距离矩阵进行读取的过程中,计算机的硬盘I/0也需要较大的开销。业内的一些专家学者经过研究后发现,通过对距离矩阵进行读取所产生的开销,要比计算数据集中点间关系的开销大很多。而这种情况是有一定的前提条件,当数据集的维度增加后,差距则会变得越来越小,这是因为,维度的增加,计算距离的开销也会随之增加,但增长速度也极为缓慢。
2.3.4 软硬件环境的搭建
本文所提出的算法需要通过搭建软硬件环境来实现。借助云计算开发环境中的hadoop,这是一个开源分布式框架,并采用分布式编程模型MapReduce。在搭建前,需要先行安装Linux系统准备好计算机集群,分别在每台虚拟机上加装vim和ssh。随后对主机名及网络配置进行修改,主要包括子网掩码和DNS服务器;对每台计算机上的etc/hosts/文件进行修改,经过修改之后,配置ssh,由此便可实现无需密码登录。为对本文提出的分布式密度峰值聚类算法的有效性进行验证,可通过大规模高维数据性能测试,由测试结果可知,该算法所产生出来的数据点副本个数具有增长缓慢的特点,副本的数量会逐渐变少,由此使得数据点之间距离计算次数随之减少,大幅度缩短了程序的执行时间。可见,该算法具有一定的推广应用价值。
3 结论
综上所述,云计算为大数据处理提供了一个有效的平台,在基于云计算进行大数据处理时,需要运用的关键技术为数据挖掘。本文重点对数据挖掘技术中的密度峰值聚类算法进行分析,论述了该算法的实现过程。在未来一段时期,应当重点加大对大数据处理相关技术的研究力度,除对现有的技术进行改进和完善之外,还应开发一些新的技术,从而更好地为大数据处理服务。
参考文献
[1]孙海军.基于云计算的大数据处理技术[J].信息安全与技术,2014 (11):61-63.
[2]龚旭.基于云计算的大数据处理技术探讨[J].电子技术与软件工程,2015 (10):198—198.
[3]李薇.基于云计算的大数据处理技术探讨[J].数字技术与应用,2017 (08):218-219.
[4]潘乐.基于云计算的大数据处理技术研究[J].物联网技术,201 7,7(06):67-68.
[5]蔡锦胜,基于云计算的大数据分析技术及应用[J],电脑编程技巧与维护,2017 (12):53-55.
[6]邢敏,互联网金融风险及防范对策的探讨[J],长春金融高等专科学校学报,2018 (04):57-61.