云计算环境下多服务器多分区数据的高效挖掘方法设计

李娜 余省威
摘 要: 云计算环境下的多服务器多分区系统中存在海量数据,传统串行数据挖掘方法对这些数据进行挖掘的过程中,无法对海量数据进行并行处理,挖掘效率低。针对该问题,设计云计算环境下多服务器多分区数据挖掘系统,其包括基础设施即服务层、平台即服务层、软件即服务层,可实现大规模数据的高效挖掘。系统通过平台即服务层中的多服务器多分区数据处理模型,实现海量数据的分布式运算,并基于MapReduce机制实现K均值聚类数据挖掘算法的并行化,通过Map和Reduce函数实现多服务器多分区数据的并行挖掘。实验结果表明,所设计系统大幅度降低了云计算环境下多服务器多分区数据的挖掘时间,提高了数据的挖掘效率和稳定性。
关键词: 云计算; 多服务器; 多分区数据; 数据挖掘
中图分类号: TN911?34; TP311 文献标识码: A 文章编号: 1004?373X(2017)10?0043?03
Abstract: Since there are mass data in the multi?server multi?partition system in cloud computing environment, the traditional serial data mining method cannot be carried out on the parallel processing of the mass data in the data mining process, and its mining efficiency is low, a cloud computing environment multi?server multi?partition data mining system was designed, which includes infrastructure, platform and software, and can realize efficient mass data mining. The system can realize the distributed operation of mass data through the multi?server multi?partition data processing model in the platform, and achieve parallelization of K?means clustering data mining algorithm based on MapReduce mechanism. The multi?server multi?partition data parallel mining is realized with Map and Reduce functions. The experimental results indicate that the designed system has greatly shortened multi?server multi?partition data mining time in the cloud computing environment, and improved the efficiency and stability of data mining.
Keywords: cloud computing; multi?server; multi?partition data; data mining
0 引 言
当前随着信息时代的到来,云计算环境下的多服务器多分区网络中的数据量呈现爆炸式增长[1]。采用有效的数据挖掘工具,可从这些数据中提取有价值的信息,能够为人们的生产和生活提供服务。传统的串行数据挖掘方法[2]无法对海量数据进行并行处理,挖掘效率低,存在较多弊端。因此,寻求有效方法,高效挖掘云计算环境下多服务器[3]多分区网络中的数据,具有重要应用意义。
1 云计算环境下多服务器多分区数据挖掘系统
1.1 系统结构
基于云计算的多服务器多分区数据挖掘系统是一个低成本、高可靠性的海量并行数据挖掘系统,其总体结构如图1所示。
基于云计算的多服务器多分区数据挖掘系统包括基础设施即服务层、平台即服务层和软件即服务层。云计算环境下多服务器多分区网络中的应用程序每一个都是独立的,负责的每一项业务不同[4?6]。在这种环境下把多服务器分解优化成数个虚拟机,极大地提高了物理机的使用频率,有利于负载均衡和避免资源的浪费,在最大程度上提高了系统部署和在线活动的运行效率[7?8]。
多服务器多分区数据处理模型采用处理算法对分布式的数据进行有效的操作。资源管理服务为多服务器多分区数据处理模型输送各项资源调配与对应的数据供应,增强多服务器多分区系统的伸展功能与稳定性,解决硬件资源存在的使用率偏低的问题,处理传统单机分析中的硬件资源浪费的现象。
1.2 多服务器多分区数据挖掘业务流程
多服务器多分区数据挖掘业务流程图如图2所示。
1.3 平台即服务层中多服务器多分区数据处理模型设计
系统中的平台即服务层将MapReduce数据处理模型当成多服务器多分区数据处理模型,采用Hadoop框架并利用MapReduce机制完成多服务器多分区数据的分布式运算。MapReduce包括Map过程和Reduce过程,其运行机制如图3所示。Map过程如下:
(1) 云计算环境下的多服务器多分区数据能够进行分片,设置各分片大约为64 MB,这些分片通过Map进行控制。Map进行控制的结果key?value保存到环形内存缓冲区内,当该缓存区的大小达到阈值时,Map会塑造溢出文体存储溢出的数据。
(2) 数据写入磁盘前,应按照Reduce任务的数量对数据进行划分,确保一个Reduce任务执行一个分区的数据。后台线程对各分区内的数据大小进行排列,若在Map端设置了 Combiner,则其是微型的Reducer,可融合同样的key,降低Map传输给Reduce的数据量。
(3) 结束Map任务输出后,应融合溢出文件。通过数据压缩过程降低云计算环境下多服务器多分区网络中传递的数据量。
(4) 将分区中的数据复制给对应的Reduce任务。
Reduce过程如下:
(1) 单个Reduce采集多个Map输出的数据,并且对这些数据进行汇总。Reduce将数据保存到内存缓存去,将溢出的输出存储到磁盘中。
(2) 存在多个溢出文件,这些文件通过后台线程融合成一个排序文件。
(3) 融合溢出文件,将结果输入Reduce函数。
2 K均值聚类方法的并行化实现
通过MapReduce框架对K均值聚类算法进行并行化处理,需要对map()和reduce()两个函数进行设计。K均值聚类算法并行化是运算各数据对象同k个中心点间的距离时进行并行化操作。先对k个中心点进行初始化处理,再并行运算k个中心点同各数据对象间的距离,按照该距离划分数据对象。并再次运算各簇的中心点,获取新聚类中心,并循环执行上述过程,直至达到最大迭代次数为止。基于MapReduce实现K均值聚类算法,主要过程为:
(1) Map过程:此时的map()函数需要运算各多服务器多分区数据对象到不同中心点的距离,获取当前数据对象所属的新聚类类型,函数的输入项是各数据对象和前期迭代运算获取的聚类中心点,输出的中间结果表现形式是<所属簇ID,记录值>。
(2) Combine过程:为了降低中间数据的传输量同时减少通信成本,应该在map()函数运算完后进行Combine处理,能够在不同的数据节点上,向内存写入map()函数输出的中间结果。以上过程是在硬盘运行之前进行,可极大降低中间数据量。Combine的输入项是<所属簇ID,List<记录值>>,其能够从记录值的List中,解析出数据的不同维度坐标值,再汇总这些维度值,统计当前List中的数据对象数量。Combine过程输出结果为: <所属簇ID,记录总数、各维坐标汇总结果>。
(2) Reduce过程:Reduce过程能够从前期Combine过程采集到中间结果,从中得到不同簇的样本数量以及不同维坐标值的汇总结果,获取新的中心坐标,将获取的结果存储到硬盘主函数中。主函数采集多服务器多分区数据初始中心点,并将该中心点反馈给不同的map()函数,进而对总体K均值聚类算法的数据挖掘迭代过程进行控制,获取总体多服务器多分区数据的挖掘结果。
3 实验分析
通过实验检测本文设计的云计算环境下多服务器多分区数据挖掘方法的性能。实验采用的样本集为当前某系统中的数据库,包括科技、生物、医学、交通、社会、教育六种类型,为了创造云计算环境,将上述数据样本复制形成1 GB,3 GB,9 GB,15 GB,20 GB,25 GB的数据。图4为本文方法和传统串行数据挖掘方法在不同数据集大小进行数据挖掘消耗的时间。从图4可看出对小规模的多服务器多分区样本数据集进行挖掘时,两种方法的通信以及任务分配耗费的时间差别较小;但是对大规模的多服务器多分区样本数据集进行挖掘时,本文方法耗费的时间远远低于传统串行数据挖掘方法[9]。同时还能够看出传统串行数据挖掘方法挖掘时间随着数据量的增加而增加,增加幅度较高,并且可以看出此方法在挖掘数据过程中的响应时间和运行效率逐渐降低;而本文方法挖掘海量数据的时间增加缓慢,运行效率较高。因此,本文方法大幅度降低了云计算环境下多服务器多分区数据的挖掘时间,提高了数据的挖掘效率。
由图5可知,随着数据量的不断增加,本文方法的挖掘准确率高于传统串行数据挖掘方法,并且变化较为平稳,而传统串行数据挖掘方法的挖掘准确率出现下降趋势,变化幅度较大,稳定性差。
分析图6、图7可知,在节点数为2的情况下,样本数量对不同方法的性能影响不高,但是随着节点数据的增加,不同数据样本数量下不同方法的性能加速比存在较大差异;可以看出,本文方法处理云计算环境下多服务器多分区数据的性能加速比优于传统串行数据挖掘方法,本文方法对海量数据进行挖掘的效率基本上呈现线性,并且随着数据量的增加,本文方法的加速比不断趋近于线性加速比。
图6中,样本大小在 3 GB,9 GB时,随着节点数的增加,本文方法的加速比越来越靠近线性加速比。而图7中,传统串行数据挖掘方法对海量数据进行挖掘的效率线性趋势较差,存在滞后问题。说明本文方法在云计算环境下提高了多服务器多分区数据的挖掘效率和性能,增强了系统的稳定性。
4 结 论
本文设计了云计算环境下多服务器多分区数据挖掘系统,其由基础设施即服务层、平台即服务层和软件即服务层构成。系统基于MapReduce实现K均值聚类数据挖掘算法的并行化实现过程,以及基于MapReduce中的map()和reduce()函数实现多服务器多分区数据的并行挖掘。通过实验检测结果能够得出,本文设计的数据挖掘方法极大提高了多服务器多分区数据的挖掘效率和稳定性。
参考文献
[1] 王昌辉.云计算设备中大数据特征高效分类挖掘方法研究[J].现代电子技术,2015,38(22):55?58.
[2] 邱芬,张炘.云计算环境下多来源数据最优选取模型仿真[J].计算机仿真,2014,31(11):179?182.
[3] 刘明伟,张晓滨,杨东山.移动环境下多情景源用户情景序列的提取[J].西安工程大学学报,2015,29(6):746?750.
[4] 王曙霞,胡瑞敏,梁意文,等.云服务器中的不稳定数据挖掘系统的研究与设计[J].现代电子技术,2016,39(6):49?52.
[5] 侯研.混合服务器时变网络环境中潜在威胁挖掘模型[J].计算机仿真,2014,31(7):301?304.
[6] 郭晴,楊海霞,刘永泰.云计算环境下的复杂数据库并行调度模型仿真[J].计算机仿真,2015,32(6):360?363.
[7] 刘鸽,叶宏,李运喜,等.基于多分区操作系统的多核确定性调度方法设计[J].航空计算技术,2016,46(1):99?102.
[8] 刘莹,杜奕智,邹乐.大图挖掘中一种基于云计算的改进SpiderMine算法[J].微型电脑应用,2016,32(1):33?37.
[9] 张金娜,喻林.基于混合累积模式匹配的云数据特征分区融合算法[J].科技通报,2016,32(2):158?162.