于晶
【摘 要】文章主要介绍了以Spark为基础的大数据挖掘,首先分析了以Spark为基础的大数据生态系统,其次介绍了分布式集群与开发环境构建,再次介绍了Apriori算法实现,最后分析了以Spark为基础的分布协同过滤推荐。
【关键词】Spark;大数据;挖掘技术
因为大数据具有多样性、数据量大等特点,所以在大数据分析过程中,对于数据处理效率、速度以及实时性拥有较高要求。数据挖掘主要是以海量信息为目标,通过建模算法,找到隐藏的有用信息,充分发挥大数据价值。Spark体系主属于一种低延迟分布系统,以大范围数据集合为对象进行计算分析等操作。
一、以Spark为基础的大数据系统
(一)Spark Runtime
Spark Core中的相关功能包括内存管理和任务调度等内容,内含故障修复和存储交互相关子元素。通过RDD结构在Spark中传送数据包的过程中,应该率先掌握Spark处理关键数据的操作流程,相关数据信息和对象概念之间较为相似。首先全部的数据集都被分成数个子集,而每个子集还能够被传输至集群相关节点当中进行有效处理分析。其次,能够妥善保存计算得到的中间结果,基于可靠性对问题进行详细思考,能够收获相同的计算结果,并在子集节点相关文件内进行备份储存。最后进行计算解析时,如在处理数据子集过程中产生错误,则需要对子集进行重新整理,促进容错机制的有效落实[1]。
(二)Graph X
在Spark中,Graph X是重要的子项目,为此应该以Spark为基础进行创建,对大规模图进行准确计算的基础上,融入Graph X,同时添加其他组件,实施系统融合,能够提升整体数据处理能力,其中Graph X的主要功能为帮助采集运输计算过程中所需要的数据图形运行符号,由于类库存在诸多定义,通过隐性SCALE语言对特征进行合理转换的过程中,能够控制调节Graph OPS操作符。而Graph X内,需要对相关算法进行深入优化,从而为后期针对图集实施综合处理提供便利条件。Graph X主要优势便是能够进一步扩大数据规模,强化数据吸收力度。
(三)Spark Streaming
Spark即分布式的Spark Streaming数据处理的结构系统,对Spark原有数据处理能力进行优化拓展的基础上,使Spark Streaming能够结合相应的操作阶段对单位进行准确分割,从而构成一种RDD,通过短小的时间间隔对流式数据进行有效处理,因为受到处理延时问题的影响,从某一程度而言,还能够将其看作是实施处理结构。Spark Streaming属于一种容错结构形式,其错误恢复和错误处理水平极高,为此在错误处理方面拥有较为突出的应用优势。此外,Spark Streaming还能和Spark的生态模式实施有效对接,为此在协同处理完数据流之后,还可以对各种复杂现象进行有效处理。
二、以Spark为基础的分布式集群和开发环境构建
(一)硬件系统条件
入想进一步提高系统的运行效果和兼容性,在创建Spark集群的过程中,所应用的物理主机应该选择LINUX系统。通过三台虚拟设备和一个主机设备实施环境测试,以此为基础构建分布式集群,具体包括MASTER节点和WORKER节点两个。而MASTER的核心工作任务便是对分布式Spark应用程序进行单机编制,并进行合理调节,其配置要求较高。MASTER节点区域装置设备应该配置四核处理器以及4G的内存,而WORKER节点可以配置2G的内存。每个节点的相关硬件都是在PCIE的条件下创建固态硬盘,拥有较高的读写效率,能够进一步提升工作质量和运行速度。集群的操作形式不但可以进一步缩减运行成本,同时还可以结合现实需求适当调整节点数量,进行适当的减少或增加。
(二)构建Spark分布式集群
设置SCALA语言,同时把各个虚拟机装置中的SLAVES文件中的相关内容修改为集群内WORKER节点主机名,此外还应该针对各个节点中的Spark安装目录,即Spark-ENV.SH文件进行修改。其中,环境变量JDK对系统进行配置,SCALA-HOME这一安装路径会修改系统。MASTER内部相关各种节点主机名称和IP选择Spark_Master_IP相关属性值,剩余内容则设置为默认值,此外还需要确保集群内的各个节点文件Spark-env.sh能够始终和文件SLAVES的内容维持良好的一致性,在结束相关配置工作后,利用JPS命令对集群的启动状态进行详细查看[2]。
(三)配置IDE开发环境
SCALA语言在进行设计研发过程中,需要以IDEA为核心条件,同时也是重要的基础条件,因此可以将其作为对Spark结构程序进行设计、编程的基础环境。如果想要IDEA实际应用中缩减缓存数量,扩大I/O资源应用,占据有效空间,应该利用SSD硬盘对相关有用信息进行合理存储,提高系统整体应用性能。结束IDEA的配置工作后,继续检测Spark程序,提高程序的实效性。
三、以Spark为基础的Apriori算法实现
(一)概述
Apriori算法的中心思想是结合Apriori特性,针对频繁项集实施深入挖掘,具体包括下面两种环节:第一是对最小支持度进行定义,并将全部的频繁项集全部筛选出来,第二是結合置信度生成关联规则[3]。
频繁项主要是在一块物品中频繁出现的集合,至于关联规则主要指两种物品之间存在较为明显的关系。而Apriori算法的核心任务便是查询频繁项集。
(二)Apriori算法实现
Apriori算法以Spark平台为基础的分布式集群,其算法主要思路如下:第一是生成频繁项集,把事务集利用RDD
Apriori算法的实现环境主要是以Spark on YARN集群为主。单机Apriori算法选择集群内的MASTER节点作为测试环境。在算法操作中,还需要按顺序将数据集路径以及文件夹输出路径输入进去。Apriori在解析数据集时,Spark集群内的全部节点全部呈现出一种打开状态,其消耗时间也远远比单机模式要低,或仅有MASTER或WORKER单一节点打开过程所消耗的时间,具体原因是随着集群内工作节点的不断增加,集群整体配置水平的提升,其处理速度也将进一步加快。Spark自身所带有的支持伸缩计算功能,也进一步提升了大数据集整体效率。通过实践发现,使用不同编程语言,会对最终的算法结果产生不同程度的影响,导致运行结果之间产生巨大差异,具体原因是Spark结构形式可以准确计算系统呢内存状况,将相关算法融入到内存计算当中,使Apriori相关计算效率能够得到有效提升,这是Spark结构优势之一。但以Spark为基础促进分布式算法和Apriori算法的协同运行,最终的运行效率小于单机运行效率。主要原因是Spark体系结构对数据集进行处理过程中,会和HFDS实施交互作用,从而针对数据实施封装和FDD分块处理,同时还包含DAG恢复相关任务。由此能够看出Spark集群模式较为适合对各种大型数据集实施处理操作。
四、以Spark为基础的分布协同过滤推荐
(一)MLIiB算法库
由于机器算法整个操作流程较为复杂,为此在实施迭代计算的过程中,需要把计算全部融入到磁盘内,等待启动任务,但如此一来便会出现大量的CPU消耗。针对该种状况,可以在应用Spark的过程中,可以直接于内存中运行处理部分任务工作,将迭代计算内容之间转移到内存当中进行处理,进一步提升迭代计算综合实力和运算效率,同时在需要的条件下,还可以实施网络运行和磁盘操作。Spark应用到迭代计算方面拥有极高优势,同时还可以不断扩展,变为分布式学习平台。从通信角度出发进行深入思考,能够发现Spark十分高效,且十分出色,拥有极高的通讯效率。分布式算法学习过程中,相关资源主要在集群节点当中聚集[4]。
(二)协同过滤算法
协同算法即人们应用过程中,选择比较合理的想法,并将真实想法传递给用户。第一是系统过滤。通过面向全部用户选择拥有相同兴趣爱好的用户,充分结合用户的真实喜好,合理选择所需要的物品,将其组织起来,构建全新的序列与集合。用户还可以简单定义为邻居,但在操作过程中,需要解决的核心问题是针对存在聘问的用户以及满足具体条件标准的用户实施针对性组织和有效利用。
第二是协同过滤的中心思想。想要促进协同过滤中心思想的有效落实,应该进通过三种环节实施,采集用户喜好,认真分析用户应用物品过程中的相似性,结合最终的计算结果进行推荐。对用户爱好兴趣的处理分析质量能够影响系统推荐效果,由于不同用户各自的喜好方式之间也存在巨大的差异,同时还会被不同场景所影响。在一般的场景环境下,需要挑选出一种用户系统,随后充分结合用户需求,划分成不同的小组,具体包括两种分组方式:第一是结合用户的行为差异,将用户的行为特点作为基础参考依据实施分组操作。第二是针对不同行为,针对用户爱好兴趣实施分组,并实施加权处理,对数据行为进行有效采集之后,针对数据实施预处理操作。以此为基础,充分联系用户的爱好兴趣,为用户推荐其所需要的物品。选择恰当的推荐方式,将协同过滤分成以物品为基础的两种类型,分别是基础用户和协同用户。实施推荐操作中,选择恰当的邻居,当下比较常用的形式是对邻居相似程度进行规定和明确邻居数量。
五、结语
综上所述,在分布式集群中结合MLIib和Spark构建协同过滤推荐的运行方案,同时利用大数据集进行验证,能够将其在推荐系统中广泛推广开来。同时以Spark为基础的Apriori分布式算法,能够进一步弥补MLIib关联分析算法中的故障缺陷,并辅助大数据进行关联分析。
【参考文献】
[1]梁凡,赵丽.基于中智模糊关联规则生成的大数据挖掘分析算法[J].计算机应用與软件,2019(10):285-292+298.
[2]陈春谋.大数据环境下的档案管理系统信息检索及挖掘技术分析[J].电子测试,2019(14):92-94.
[3]李明东,陈小明.基于轨迹大数据技术的行为模式挖掘技术分析[J].宜春学院学报,2019,41(06):34-36+101.
[4]梁彦.基于分布式平台Spark和YARN的数据挖掘算法的并行化研究[D].中山大学,2014.