APP下载

基于MapReduce的分布式云计算数据挖掘方法

2020-11-09薛慧敏

安阳师范学院学报 2020年5期
关键词:计算环境分布式数据挖掘

薛慧敏

(山西财贸职业技术学院,山西 太原 030031)

0 引言

数据挖掘技术能够有效解决目前社会各领域海量数据频繁增长问题,帮助行业管理者从大数据中获得有价值的趋势信息[1]。大规模数据挖掘需要搭载高效数据处理平台,才能在短时间内完成相关领域的数据挖掘任务,满足行业对数据挖掘的效率需求[2]。云计算以网络“云”为介质将宏观的数据计算程序划分成多个子计算程序,呈现显著的分布式计算特征。云计算将数据挖掘压力分散开来,以此降低运算时间,克服硬件设施对计算效率的负面干扰[3]。因而,本文以云计算环境为载体进行大数据挖掘,拟选用云计算技术中的MapReduce计算模型作为大规模数据并行运算的技术支撑,以获取基于MapReduce的分布式云计算数据挖掘方案。

1 分布式云计算环境下基于MapReduce的数据挖掘技术

1.1 基于MapReduce分布式云计算框架

MapReduce是一个包含Map函数与 Reduce 函数的、能够解决海量数据并行运算的编程模式,Map函数用于解决MapReduce计算框架的映射任务,Reduce 函数用于解决计算框架的归约任务[4]。MapReduce计算模型下的数据挖掘效率提升的原理在于:MapReduce能够基于实际运行状态科学分配各程序的运算任务与运算量,通过Reduce 函数归约节点运算结果并汇总,达到实时并行化运算状态[5];同时,运算过程中将计算机视为分布式运算的节点,网络数据的交换、计算等任务均借助计算机的内存空间来实现,如此一来,MapReduce无需投入过多的计算成本并且扩大了数据运算的空间场所,相同时间内可以完成更多的计算任务。

图1为 MapReduce计算模型的计算过程。MapReduce计算过程包括Map与Reduce两大步骤,<键,值>为Map函数与Reduce函数输入值、输出值的表达形式。海量待挖掘数据的存储、传输、读取工作借助HDFS文件系统完成,HDFS是云计算环境下常用的分布式文件系统,可以高效解决分布式文件的存储等工作[6]。首先,样本数据在HDFS文件系统中进行分块处理,得到n个数据块;其次,数据块被依次读取至Map任务区域进行相应运算处理,数个节点可以同时供Map函数运行,解决若干数据分片问题;接下来进入到Reduce函数处理环节,Reduce函数以并行化运行的方式处理Map函数输出的中间结果。最后,得到被Map与Reduce处理完成的运算结果,作为最终结果输出。

图1 MapReduce计算过程

1.2 基于MapReduce的云计算K-means聚类算法实现

MapReduce计算模型在处理大规模数据问题上展现了并行、均衡负载等优势,行业技术人员愈发倾向于运用MapReduce模型解决数据挖掘问题[7]。在MapReduce计算模型的分布式云计算框架之下进行数据挖掘的方法较为丰富,K-means是一种经典的数据聚类方法,其聚类原理是对比两个样本的欧氏距离从而判断指标相似性大小,根据相似性进行数据归类。海量数据样本环境中,定义一个数据集M,任意获得k个初始聚类中心,然后求取其他所有数据样本与初始中心的欧氏距离[8];接下来完成样本与聚类中心的分类,分类遵循“最小距离”标准;最后统计各类中全部样本的距离均值,同时将其作为此类别的聚类中心更新结果,当误差平方和函数趋于最小值并且稳定时终止运算。

K-means聚类算法的误差平方和函数确定方式如下,定义数据集M的具体形式为M={x1,x2,……,xn},样本xi={xi1,xi2,……,xir},样本xj={xj1,xj2,……,xjr},公式(1)为计算样本xi、xj的欧式距离计算方法:

d(xi,xj)=

(1)

进而得到如公式(2)所示的误差平方和函数:

(2)

公式中,K-means聚类算法的类别数量用K表示,第i类样本数量以及样本均值分别用ri、ni表示。

为更加高效、精准地实现K-means算法在分布式云计算环境下的数据挖掘任务,在经典的 MapReduce计算模型基础上引入Combiner函数,具体而言,为进行Map函数操作的机器布设Combiner函数解决一次性合并Map函数输出结果的问题,无须多次反复合并操作[9]。利用优化后的MapReduce计算模型完成K-means聚类的步骤如下:

Step 1:Map函数执行运算。还原K-means聚类算法中k 个中心点,以并行方法求取中心点与数据对象间的距离,数据对象分类工作也依据该距离完成。求取云计算环境下服务器数据对象与聚类中心点的距离,以此更新此刻数据对象的聚类类型,各个样本数据对象的聚类中心点即为当前Map函数的输入项。

Step 2:Combiner函数优化。对完成Map函数操作的数据实施Combiner处理,以差异性数据节点为介质完成Map函数内存写入操作,以此节约内存开销及其成本投入,同时减少中间数据传输量。

Step 3:Reduce函数执行运算。初始阶段Combiner过程的中间结果获取可通过Reduce函数过程实现,各簇的样本数量、差异性维度坐标值统计情况均可一并获得,由此得到更新后的中心坐标值,在硬盘主函数部分进行安全存储。分布式云计算 MapReduce计算模型框架下,各服务器的数据初始中心点均由主函数负责采集与存储,将中心点信息传递至Map函数部分,从宏观上向K-means聚类算法数据挖掘过程发号施令。

2 实验分析

搭建云计算数据挖掘实验平台进行数据挖掘测试,系统环境为Ubuntul2.04,以验证基于MapReduce的分布式云计算数据挖掘方法的可行性与性能。本次分布式云计算测试平台包括6台计算机,构成集群式数据测试集群。其中,云计算环境的各个节点配备Inter Corel 7处理器,2.5GHz主频,拥有8G内存。本次测试从权威数据平台获得5个有效数据集作为数据挖掘的测试样本,数据样本总规模为1.02GB。为突出本文算法在云计算环境下的数据挖掘优势,同时选取未增加Combiner函数处理的传统云计算K-means聚类算法以及G-means聚类算法作为对比测试方法,详细的实验结果如下。

整个数据挖掘测试过程中,随着分布式计算节点的增加,三种数据聚类算法的时间开销情况如表1所示。

表1 不同数据聚类算法的时间开销情况/s

表1数据显示,当分布式计算节点由1个增加至6个时,三种算法的时间开销均呈下降趋势。同时,可以明显看出,本文算法的初始时间开销便是三者中最低,直到节点增加至6个时,聚类时间开销仅为4121s,为三种算法中效率最高者。这是因为本文算法在云计算环境下采用了 MapReduce计算模型,并且在Map函数操作的机器上布设Combiner函数解决一次性合并Map函数输出结果的问题,无需多次合并操作,大大节省了算法运行的时间。

此外,还可以看出,随着节点数量增加,本文算法聚类时间减少的数据量存在一定规律性,前期时间减少幅度约为2000s,后期时间减少幅度约为1000s,没有大幅度波动情况,说明此算法在云计算环境下进行数据挖掘的稳定性较优。

3 结论

云计算的分布式计算特征使其成为大数据处理的必然发展趋势,以“任务分发—合并”的形式解决大规模数据分析与处理问题,MapReduce模型则是突出的云计算工具。本文对云计算环境下的MapReduce计算模型进行优化,获得一种可以高效辅助K-means聚类算法完成数据挖掘的方案。经过测试得出,该算法在聚类效率方面优势显著,同时获得了较优的数据挖掘稳定性。

猜你喜欢

计算环境分布式数据挖掘
云计算环境下船舶无线通信网络入侵检测方法
云计算环境下网络安全等级保护的实现途径
改进支持向量机在特征数据挖掘中的智能应用
探讨人工智能与数据挖掘发展趋势
基于事故数据挖掘的AEB路口测试场景
云计算环境下的信息安全风险评估
浅析分布式发电对电力系统的影响
分布式计算环境下网络数据加密技术研究
基于预处理MUSIC算法的分布式阵列DOA估计
软件工程领域中的异常数据挖掘算法