更新算法云计算平台下的算法性能分析

更新算法云计算平台下的算法性能分析实验运行在Hadoop平台上,使用多文件输出功能以及Mahout工具实现了多个MapReduce任务的迭代运行

Hadoop平台由6个节点组成,其中,1台为Master节点; 其他5台为Slave节点

每个节点的硬件配置与单机情况下的实验相同,操作系统为Ubuntu12.0.4,Hadoop版本为Hadoop-0.20.2,jdk版本为jdk1.7.0_45

实验使用的数据集为webdocs.dat,webdocs.dat,数据大小为1.37GB,共有1692082条记录,包含5267656个不同的项,其中,最长的事务有71472项

 实验中首先将数据分为5组,选取数据集的20%作为原数据库,记做data0,每次递增20%进行并行增量挖掘,分别记做data1,data2,data3,data4,支持度为5%

将并行化算法与Mahout开源平台所提供的PFP-growth算法、文献中的MRFUP算法进行比较,其中,算法和PFP-growth算法中的分组数均为5

 由Hadoop平台下的算法性能对比可以看出,相比PFP-growth算法,并行化算法很大程度上提高了挖掘效率,这是因为算法每次只对新增数据库的分组构建条件FP-tree,节约了每个分组构建FP-tree的时间

MRFUP算法虽然也是基于MapReduce的增量更新算法,但是算法的很多步骤仍然是在单机环境下,只有对候选集的筛选是在云计算平台下进行,因此,在数据量较大的情况下算法效率提高有限

随着数据的不断增加,并行化算法的时间开销增幅平稳,在大数据环境下能保持稳定

因此,实验结果证明了并行化算法适用于大数据环境下的增量更新

 为了验证算法的可扩展性,将数据集的80%作为原数据库,20%作为新增数据库,支持度分别设为5% ,10%和15% ,分别基于1个~5个Slave节点比较算法的运行时间,由不同Slave节点和支持度下的算法运行时间对比可以看出,在数据和支持度相同的情况下,随着Slave节点数量的增加,算法执行时间逐渐降低,这是因为Hadoop集群具有高度并行性,而在一个机架内节点之间的通信开销较小,从而程序整体运行时间不断减少

而在数据和节点相同的情况下,当支持度较大时,运行时间较少,这是因为随着支持度增加,数据的头表中的项目变少,分发数据和建立FP-tree的时间开销都会降低

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关