基于Spark SQL的海量数据实时分类查询算法的研究

收稿日期:2021-01-12
车流量统计作者简介:胡晶(1981—),女,山东平度人,副教授,硕士,主要研究方向为数据库技术、大数据技术与应用、计算机应用。
基于SparkSQL的海量数据实时分类查询算法的研究
胡 晶
(福建船政交通职业学院,福建福州350007)
摘要:Spark是高速计算引擎,在计算能力上优于MapReduce。Spark采用的是内存计算方式,而SparkSQL在基于Hive数仓数据的分布式计算上尤为广泛。重点研究SparkSQL在进行海量数据的分类查询时,对处理大数据计算的性能进行优化建议。大数据的分类、查询和大数据处理的两个重要方向,引入了改进的随机森林算法提高数据分类的准确性,优化遗传算法缩短了查询时间,在对海量大数据进行实时分类、查询的场景中具有指导意义。
关键词:SparkSQL;随机森林算法;遗传算法
中图分类号:TP311.13 文献标识码:A 文章编号:2096-790X(2021)05
-0035-04DOI:10.19576/j.issn.2096-790X.2021.05.007
ResearchonMassiveDataRealTimeClassificationQueryAlgorithmBasedonSparkSQL
HuJing
(FujianChuanzhengCommunicationsCollege,FuzhouCity,FujianProvince350007)
Abstract:Sparkisahigh-speedcomputingengine,whichisbetterthanMapReduceincomputingpower.Sparkusesmemorycomputing,andsparkSQLispopularindistributedcomputingbasedonhivedatawarehouse.ThispaperfocusesontheapplicationofsparkSQLintheclassificationqueryoflarge-scalemassivedata,andpro videssomesuggestionsontheperformanceoptimizationofbigdataprocessing.Bigdatacl
assificationandqueryandbigdataprocessingaretwoimportantdirections,sothispaperintroducestheimprovedrandomforestalgorithmtodeveloptheaccuracyofdataclassification,andintroducestheoptimizedgeneticalgorithmtoshortenthequerytime,whichhasguidingsignificanceinthesceneofreal-timeclassificationandreal-timequeryofmassivebigdata.
Keywords:sparkSQL;randomforestalgorithm;geneticalgorithm
0 引言
大数据应用一个重要的方向就是大数据挖掘。和传统的数据挖掘对比,大数据具有数据体量庞大、数据处理结果实时性高、处理对象价值密度低的特
点[
1]
。目前有许多大数据平台比如Hadoop,平台的MapReduce为海量的数据提供了计算,而Spark因其支持多种语言、通用性强、易用易处理、迭代速度快、SparkSQL独立处理结构化数据的实时性、良好的交互功能等优势被广泛使用。S
park主要包含以下几个模块:SparkCore、2.2SparkSQL、SparkStreaming、SparkML。本文主要研究SparkSQL在处
理海量数据时面对的两大问题:数据分类和查询优化。改进了两种算法:一是改进的加权随机森林算法,另一个是优化的遗传算法,通过实验验证了两种算法在提高分类准确性和查询效率上较原有方法有明显的提高。
1 大数据实时分类算法和查询优化研
究现状
包装袋印刷  在分布式的数据库管理系统的使用过程中,数据分割包含以下3种方法:水平分割、垂直分割和混合分割,在进行处理的过程中面临一个重要的问题就对数据进行准确高效的划分,然后将划分好的数
 第23卷 第5期
 Vol.23 No.5
黄河科技学院学报
JOURNALOFHUANGHES&TCOLLEGE
      2021年5月
May2021
手机转轴据分配给各个子节点进行处理。本文将基于大数据计算框架Spark集,分析当前的数据分配策略和查询优化算法,提出一种基于当前研究的新的数据划分策略和查询优化算法,提高分布式数据库的分类准确性和查询效率。数据分配一般是指“数据分布”,主要包括以下几种分配策略:集中式、分割式、全复制式和混合式[2]。为保证后续查询高效进行,在分类的研究过程中,重要的一个关注点就是数据分配的准确性和均衡性,控制每一个目标对象节点上数据的大小,保证各节点负载均衡,避免单个节点数据体积过大。另外复制策略也受到广泛关注,复制策略需要对数据进行进一步分配,具有全复制和分区的特性,提高了数据局部性和查询效率,这方面研究一般和动态数据分配策略结合。在数据分配的过程中必须保证数据库的ACID特性,同时要保证数据库可用。
Spark采用的是内存计算方式,是一个性能优秀的大数据处理平台,在计算能力上优于Hadoop的MapReduce,被誉为第二代大数据计算框架引擎。Spark的四大核心是Spar
kRDD(Sparkcore)、SparkSQL、SparkStreaming、SparkML。而SparkSQL在基于Hive数仓数据的分布式计算上尤为广泛。分类算法优化的下一步就是进行查询的优化,Spark可以将数据进行实时分区处理。目前常用的分类和查询算法有分类决策树算法、K-means算法、最大期望(EM)算法、NBC算法、LR回归算法、KNN分类算法等、贝叶斯分类算法、模拟退火算法等。这里采用的分类算法是随机森林算法,数据查询采用优化的遗传算法。户外防雷器
2 改进的随机森林算法
随机森林算法一系列的分类和回归问题,该算法要克服的问题主要包含过拟合、缺失值和分类值建模,因此在使用过程中遇到以下几个问题:(1)决定树个数较多导致的训练时间和空间较大;(2)对一些复杂的数据无法处理;(3)数据集冗余大、无用数据较多的情况下,RF模型容易陷入一种为了得到一致假设而使假设变得过度严格的过拟合状态。随机森林算法在解决实际问题是具有以下优点:(1)对数据集有较强的适应能力;(2)能够对特征的重要性进行评估;(3)可以并行处理数据,尤其适合处理高维海量数据。缺点主要体现在以下几方面:(1)无相关性、冗余度高的数据分类能力差;(2)对决策树的分辨不够准确;(3)执行效率较低。为解决随机森林算法对无相关性、冗余底高的数据不占优势的问题,我们提出了一种加权改进的随机森林算法。
随机森林(Randomforest,RF)算法应用广泛准确率较高,但面对高维不平衡数据时其分类性能会大大降低,高维数据价值密度低、冗余高[3],这里结合权重的思想提出了一种改进的加权随机森林算法,使用了ReliefF算法,该系列算法运行效率高,对数据类型没有特殊的划分限制,是特征选择算法的一种,是对所有和类别相关性高的特征分配较高的权重进行区分[4]。具体流程如下:对数据集按特征集分配不同的权值,再引用递归算法去掉冗余的较低的权值特征数据集合,得到分类性能最优的子集来构造随机森林,对数据集抽样方式进行加权改进,从而减轻高维的数据对分类模型的影响[5]。通过实验数据显示,在对维度较高的比较复杂的数据集的处理中,改进算法的各评价指标均高于原算法,证明提出的改进的加权随机森林算法有效减轻了高维度的复杂的具有冗余特征的目标数据对模型分类精度的影响。
ReliefF算法是Relief算法的扩展和改进,Re liefF算法可以应用到多个样本集上。假定现有不同数据类型的样本若干,对每类样本称作R,选取特征为A,本文在应用ReliefF算法步骤说明如下:(1)置零所有特征权重;(2)从所有样本中,随机取出一个样本W;(3)在与样本W相同分类的样本组内,取出k个最近邻样本M;(4)在所有其他与样本W不同分类的样本组内,也分别取出k个最近邻样本N;(5)计算每个特征的权重;(6)最后对W进行排序,递归删除权值低的分类。
Relief算法最早由Kira提出。基本内容:从训练集D中随机选择一个样本R,然后从和R
同类的样本中寻k最近邻样本H,从和R不同类的样本中寻k最近邻样本M,最后按照公式更新特征权重。
W(A)=W(A)-∑
j=1
diff(A,R,H
)/(mk)+∑
C∈class(R)[
p(C)
1-p(Class(R))
∑k
j=1
diff(A,R,M
(C))]/(mk)
  简要说明如下:diff(A,R
,R
)表示样本R
样本R
在特征A上的差,其计算公式,M
(C)表示类C中的第j个最近邻样本。如下式所示:
3黄河科技学院学报
diffARR=
|RA-RA|
A-A
  ifAiscontinuousifAisdiscreteandRA=RA
ifAisdiscreteandRA≠{
工业制氧气方法RA
3 优化的遗传算法
遗传算法是一种求解复杂系统优化问题的算法,应用于较多的领域,诸如函数优化、组合优化、生产调度问题、图像处理、遗传编程、机器学习和数据挖掘等领域。数据挖掘技术可以从大规模、变速变化的数据集中提取具有潜在价值的数据集合。在实际应用中,数据挖掘可以解决一系列搜索的优化问题,如果把大规模数据看成一个搜索目标,挖掘有用数据的算法就是搜索策略,我们这里搜索策略即采用优化的遗传算法。我们应用优化的遗传算法对海量数据进行搜索,对在搜索过程中实时随机产生的规则进行优化,从而实现对目标数据进行搜索,这里的目标数据是指已经应用加权随机森林算法优化后的数据集。
遗传算法就是优先选择适应性强的个体,遗传算法采用概率化最优化的原则,在大范围内对解进行优化,遗传算法擅长解决全局最优化问题。解决问题的基本步骤如下:(1)输入数据集的规模、长度、交叉概率、变异概率和停止规则;(2)初始化数据集合;(3)计算个体的适应度;(4)对个体适应度进行排序;(5)选择及交叉操作;(6)变异操作;(7)判断结束搜索的条件,如满足,终止算法。其中遗传算法是运用遗传算子来进行遗传操作的,即:选择算子和交叉算子。
①选择算子:根据个体的适应度,按照一定的规则,从第n代体中选择出一些具有优良性状的个体遗传到下一代(n+1)体中。在这一选择过程中,个体适应度越大,则被选择到下一代的机会越大。某个体i的适应度fi,种大小NP,则i被选择的概率公式为:
Pi=
fi
∑NP
i=1
fi
(i=1,2,3,4…,NP)
  ②交叉算子:将体P(n)中选中的各个个体随机搭配,交叉算法使遗传算法的搜索能力得到更好的延伸。
4 实验结果与分析
4.1 实验环境搭建
在将随机森林算法和遗传算法并行化时,在对算法逻辑和使用的数据结构进行优化提高算法执行效率的同时,优化平台环境的对数据分类搜索的优化也相当重要。
在虚拟机的搭建spark集,集包含5台主机,并分别配置结点,具体配置如表1所示。实验采用KDDCup数据集,该数据集中具有近20万条记录,为充分验证本文方法在大数据分类和搜索方面的优势,共采用客户机、数据服务模块服务器、应用服务器、数据库服务器6台设备构成一个分布式数据库集,如图1所示。
表1 Spark集配置
主机号节点配置类型
node1NodeManager,NameNode,DataNode,ResourceManagernode2SecondaryNameNode,NodeManager,DataNode
node3NodeManager,DataNode
node4NodeManager,DataNode
node5NodeManager,DataNod
图1 数据库集
3胡晶:基于SparkSQL的海量数据实时分类查询算法的研究
开模  图1中,DriverProgram是main()函数和创建SparkContext的进程;SparkContext是主程序中的对象;ClusterManager是外部服务对象用来请求的集资源;
Workernode是集中应用程序代码结点;Task是发送到Executor上执行的单元;Executor是指worker结点上的进程;Cache主要用于数据缓存。
Spark应用程序在集上运行多个独立的进程,通过主程序中的sparkcontext对象来协调,SparkCon text会连接多种类型的ClusterManager,它们会分配资源给应用程序。连接建立成功s
park会请求集结点分配Executor,Executor为应用程序运行计算和存储数据,SparkContext发送应用程序代码给execu tors,最后SparkContext发送Task给Executor执行。4.2 结果分析
本文主要对比的目标是参考文献[6],通过实验得到不同方法在KDDCup数据集上的数据搜索时间,随着数据规模的增加,两种方法在大数据分类的准备率呈现增长增高。本文方法在数据规模达
到100000时的搜索准确率提高了3.7%,表明此方法具有更高的大数据搜索的准确率。同时改进遗传算法后,搜索时间也随之降低,如图2
所示。图2 数据搜索准确率
采用估化算法后运行时间度量算法在Spark集环境下的性能表现,如表2所示。
表2 算法运行时间对比
算法
运行时间/s
原算法运行时间
980优化的遗传选择算法运行时间
760
5 结束语
本文重点研究sparkSQL在进行大规模海量数据的分类查询,对处理大数据计算的性能进行优化建议。大数据的分类和查询和大数据处理的两个重要方向,因此引入了改进的随机森林算法提高数据分类的准确性,引入了优化遗传算法缩短了查询时间,实验结果证明在大数据分类的准确度和查询时间方面取得了一定的改进。
参考文献:
[1]齐超,崔然.基于递归随机搜索算法的Hadoop平台大数据软件系统研究[J].软件,2020,41(6):177-
184.
[2]周诗源,王英林.基于布谷鸟搜索优化算法的多文档摘要方法[J].计算机工程,2020,46(7):58-64,71.[3]陈俊芬,张明,赵佳成.复杂高维数据的密度峰值快速搜索聚类算法[J].计算机科学,2020,47(3):79-
86.
[4]BOSCHA,ZISSERMANA,MUNOZX.Imageclassificationusingrandomforestsandferns[C]//ICCV2007:
EleventhIEEEInternationalConferenceonComputerVision.Piscataway:IEEEPress,2007:1-8.
[5]ROGEZG,RIHANJ,RAMALINGAMS,etal.Randomizedtreesforhumanposedetection[C]//CVPR2008:
IEEEConferenceonComputerVisionandPatternRecognition.Piscataway:IEEEPress,2008:1-8.
[6]HOTK.Randomdecisionforest[C]//InternationalConferenceonDocumentAnalysisandRecognition,1995:
278-282.
3黄河科技学院学报

本文发布于:2024-09-21 22:03:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/113041.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   算法   分类   优化   进行   查询   搜索   遗传算法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议