APP下载

基于Spark平台的大数据挖掘技术分析

2021-11-21

无线互联科技 2021年2期
关键词:项集子集数据挖掘

(深圳博十强志科技有限公司,广东 深圳 518000)

0 引言

信息时代背景下,云计算、物联网技术的快速发展,各类数据信息急剧增长,怎样才能够将海量的数据信息转变为有效的资源,是大数据技术研究的要点。通过大数据技术来挖掘海量数据存在的内在规律,确定有价值的信息数据并予以利用,可以打开全新的思维与认知角度,这对于社会经济的发展意义重大。Spark平台作为针对大数据集合的低延迟集群分布式计算系统,可以为大数据挖掘效率的提升提供更多支持。

1 大数据挖掘技术分析

数据挖掘技术现在已经得到了广泛应用,可以利用算法来挖掘出海量数据内存在的有价值的信息以及有趣模式。可以分为3个阶段:(1)数据的预处理。转化采集到的所有原始数据,确保其在经过处理后可以符合项目需求,转变成有效数。该步骤可以弥补原始数据存在的缺陷,提高数据的完整性与可靠性[1]。数据抽取操作比较简单,可通过较快的速度从大量的数据信息内获得有价值的数据。(2)数据的挖掘。首先要确定数据仓库内各类数据的普遍特征,并根据此确定对应的算法工具,实现对目标数据的进一步处理。该阶段为数据挖掘技术的核心,为达到最终目的,关键是要保证所选挖掘算法的适用性。(3)知识表示与模式评估。模式主要是完成数据挖掘成果的有效表达,最终构建出有识别能力的完整表达模式。

2 基于Spark平台的大数据挖掘技术

2.1 基于Spark平台的大数据生态系统

2.1.1 Spark Runtime

对Spark Runtime分析时,首先要确定其功能性,例如任务调度与内存管理等。在利用RDD结构来进行Spark内部的数据传输时,前提是要确定Spark核心逻辑数据信息,在部分条件下其会与对象概念有着一定的相似性。第一步想要对全部数据进行多个子集的划分,同时要求每个子集全部能够传输到集群内任意的节点做进一步的处理。第二步是对计算中间结果提供可靠保护,通过此来获取与计算结果相同,同时在子集节点进行备份存放的文件内容[2]。第三步则是在任意数据子集计算错误的情况下,其余子集全部要做再一次的整理,满足容错机制。

2.1.2 Graph X

Graph X为Spark的关键子项目,在Spark基础上进行构建,基于大规模图计算,通过Graph X衍生特征支持,可实现Spark生态系统对于大图数据处理时的丰富计算。以及在于其他相关组件进行系统融合时,在强大数据处理能力的支持下,便能够确保所有应用全可通过多项场景来获取。对Graph X功能性进行分析,可确定其能够提供丰富的图数据操作符,例如核心与优化操作符等[3]。并且,Graph X还可以满足多个分布集群的图运算,以及具备充足的API接口,尤其是在达到一定图规模的情况下,可进行精益化算法,推动分布式图集的大规模处理。作为Spark的重要部分,Graph X的关键就是可进一步提高数据吸收与规模。

2.1.3 Spark Streaming

SPark系统除了具有良好的扩展Spark数据能力,还可以做到严格按照时间方式进行Spark Streaming数据流的分割,最终构成RDD,利用比较小的时间间隔来处理流式数据,会在一定程度上受到处理延时影响,所以可以将其看做是准时处理系统[4]。并且,Spark Streaming具有非常强的容错性,包括错误处理以及恢复等方面均具备较大的优势。以及Spark Streaming还可无缝对接相关Spark生态模块,除了共同完成流数据以外,对于部分复杂现象也可以做到有效处理。

2.2 基于Spark平台的开发环境与分布式集群构建

2.2.1 硬件系统

为达到优良的兼容性与运行性效果,就需要采用Linux操作系统来构建Spark分布式集群。安排1台主机的3台虚拟机进行环境测试,并完成Spark分布式集群的构建,其中分为2个Worker节点与1个Master节点,各节点分别负责不同的功能。例如Master节点对应功能是见单机编写,同时调节Spark分布式应用程序,因此需要较高的配置。一般来讲Master节点对应的是4G内存与四核处理器,而Worker节点对应的配置则多为2G内存与二核处理器。另外,为保证各个节点功能的有效体现,全部使用的是以PCIE为基础的SSD固态硬盘,在保证读写效率达标的情况下,还能够进一步做到高效率、高质量运行。通过对集群构建的管理,能够以更少的运行成本,来达到较高的运行速度与工作质量,并且还能够根据实际需求来灵活的调整节点数量。

2.2.2 分布式Spark集群

先完成Scala语言的安装,对每台虚拟机的slaves文件内容进行修改,修改后要全部为见集群中Worker节点主机名,然后要进一步完成节点Spark安装目录Spark-env.sh文件的修改。配置系统的jdk环境变量,对系统Scala安装路径进行修改,确定为Scala-Home[5]。另外,要注意集群内各节点对应的Spark-env.sh文件必须要核对确认其与Slaves文件内容相同,并且在完成所有配置后,可直接运行jps命令查看集群启动情况。

2.2.3 Spaek的IDE开发环境

Scala语言所应用的开发环境是IDEA,这样便可以选择IDEA为Spark应用程序编程与开发环境。其中,需要注意IDEA使用过程中所产生的大量缓存文件,可以通过应用SSD固态硬盘实现文件存储,因此来减少对空间的占用量,同时降低I/O资源的消耗量,为系统的稳定运行提供有利条件。待IDEA配置完成后,便可对Spark程序做下一步的测试。

3 基于Spark平台的Apriori算法分布式实现

Apriori算法是以挖掘关联规则为基础的一种频繁项集算法,能够反复扫描交易数据库信息,然后基于候选频繁集生成最终的频繁集。其中定义最小支持度为算法的核心流程,对所有的频繁项集进行选择,然后按照置信度实现关联规则的生成。基于Spark平台Apriori算法分布式实现,可以分为两个步骤来实现:第一步,产生频繁项集,所有事务集全部根据RDD的形式在各机器上分布,积累项目数量,以及保留支持度较高的项集。第二步,通过频繁项集衍生频繁项集,项集自连接生成Ck+1,扫描数据库内容,最后根据Ck+1生成频繁项集。

4 基于Spark平台的分布协同过滤推荐实现

4.1 MLlib算法库

对计算算法流程进行分析,可确定其具有较高的复杂性,在进行迭代计算时,全部计算均需要放入磁盘中等待任务的启动与处理,整个过程需要消耗大量CPU。基于Spark平台可在内存内直接完成部分的工作处理,相应的迭代部分计算任务会直接转存在内存中,以此便可以进一步提高迭代计算的计算效率,并且在部分必要的条件下,还能够实现磁盘与网络的运作。总结来讲,在迭代计算中Spark具有更加明显的优势,其能够作为分布式机器学习平台存在。

4.2 协同过滤算法

协同过滤算法的应用,先是要选择确定一个靠谱的想法,随后便可向用户提供该想法。算法的步骤可分为以下流程:(1)系统过滤。筛选存在共同兴趣的用户,然后以喜好对物品进行选择和分类,并将其构成新的集合或序列。在此过程中可定义用户为邻居,同时要对相应用户进行针对性组织与利用,确定最有效的执行方法。(2)协同过滤。依次完成用户喜好收集、用户使用物品相似性分析以及基于计算结果推荐各步骤,其中用户喜好整合是影响最终推荐针对性的核心要素。首先要选择一种用户系统,然后根据用户行为来进行分组,对数据行为进行可靠收集,然后做进一步的数据预处理,通过用户喜好向其推荐可能会喜欢的物品。

5 结语

基于Spark平台的分布式Apriori算法有效的弥补了其他算法的缺陷,在大数据关联分析中应用优势明显,并且有机结合Spark与MLlib制定分布式协同过滤推荐在分布式集群中的运行方案,在大量推荐系统的应用中效果显著,值得进一步的研究分析。

猜你喜欢

项集子集数据挖掘
拓扑空间中紧致子集的性质研究
连通子集性质的推广与等价刻画
关于奇数阶二元子集的分离序列
基于并行计算的大数据挖掘在电网中的应用
一种基于Hadoop的大数据挖掘云服务及应用
关联规则中经典的Apriori算法研究
一种频繁核心项集的快速挖掘算法
基于GPGPU的离散数据挖掘研究
一种新的改进Apriori算法*
分布式数据库的精简频繁模式集及其挖掘算法*