CN115794405A - 一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法 - Google Patents
一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法 Download PDFInfo
- Publication number
- CN115794405A CN115794405A CN202211595525.5A CN202211595525A CN115794405A CN 115794405 A CN115794405 A CN 115794405A CN 202211595525 A CN202211595525 A CN 202211595525A CN 115794405 A CN115794405 A CN 115794405A
- Authority
- CN
- China
- Prior art keywords
- representing
- resource
- cpu
- current
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于大数据流处理技术领域,具体涉及一种基于SSA‑XGboost算法的大数据处理框架的动态资源分配方法,包括:构建目标函数;获取Spark Streaming作业的成本模型的运行数据,并对运行数据进行清洗;采用优化后的XGboost算法对目标函数进行优化求解,得到Spark Streaming每一批次时间内所需的最佳资源大小;根据求得的最佳资源大小采用BFD算法进行Spark Streaming执行器的放置;本发明采用麻雀搜索算法SSA对XGboost算法的超参数进行选取高了算法的预测精度。
Description
技术领域
本发明属于大数据流处理技术领域,具体涉及一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法。
背景技术
随着大数据和云计算的快速发展,大数据的时代已经到来。由于每天每小时每分钟产生的数据都是以指数的形式增长的,因此需要大量的计算机来保证数据处理的快速进行,采用云计算中心来进行集中化处理数据的方式越来越普遍。云计算正以其强大的运算能力和日益成熟的体系架构为这庞大的数据处理提供支撑。
Spark Streaming是批量流式计算平台最为典型的代表,其构建于大规模数据处理引擎Spark之上,已被工业界和学术界广泛采用。因为计算资源在数据处理过程中有着非常重要的作用,所以合理有效的利用资源,提高资源利用率是至关重要的,因此,在大数据流式计算过程中,使用动态资源分配算法对资源进行合理的分配来优化成本也是有意义的。
Spark Streaming原生的动态资源分配算法是通过对批次任务的处理时间与批次时间间隔的占比来评估***状态,并确定资源的增减,然后通过轮询的方式来进行执行器的放置,这样会存在着资源利用率低,成本高的问题。因此,在云环境下,如何在不同流式负载下动态的进行资源的调整就成了一个亟待解决的问题。
发明内容
为解决以上现有技术存在的问题,本发明提出了一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法,该方法包括:
S1、构建Spark Streaming作业的成本模型,根据Spark Streaming作业的成本模型构建目标函数;
S2、获取Spark Streaming作业的成本模型的运行数据,并对运行数据进行清洗;其中,运行数据包括批处理时间内的数据量大小、批次划分间隔、数据块划分间隔、CPU和内存资源的使用情况;
S3、根据清洗后成本模型的运行数据采用优化后的XGboost算法对目标函数进行优化求解,得到Spark Streaming每一批次时间内所需的最佳资源大小;
S4、根据求得的最佳资源大小采用BFD算法进行Spark Streaming执行器的放置。
优选的,目标函数的表达式为:
其中,Fk表示使用一个类型为k的虚拟节点所需的固定成本,η表示SparkStreaming集群中所有虚拟节点类型构成的集合,δk表示所有类型为k的虚拟节点构成的集合;mjk表示第j个类型为k的虚拟节点是否被使用的二进制决策变量,nijk表示执行器i是否被放置在第j个类型为k的虚拟节点上,表示运行当前Spark Streaming作业所需的执行器集合;μcpu表示当前Spark Streaming作业的某一执行器的CPU资源需求,表示第j个类型为k的虚拟节点的可用CPU资源;μmem表示当前Spark Streaming作业的某一执行器的内存资源需求,表示第j个类型为k的虚拟节点的可用内存资源,C1表示SparkStreaming集群中虚拟机上已经放置的执行器数量大小,C2表示需要放置的执行器的CPU核数要不大于当前虚拟机的剩余CPU核数大小,C3表示需要放置的执行器的内存大小要不大于当前虚拟机的剩余内存大小。
优选的,优化后的XGboost算法包括:采用麻雀搜索算法求出XGboost算法的最优超参数组合,具体步骤包括:
步骤1、初始化麻雀种群,包括最大迭代次数、发现者数量、加入者数量、警戒者比例以及安全阈值参数;
步骤2、根据优化目标计算每个麻雀的适应度值,并根据适应度对种群进行排序,得到当前的最优麻雀位置和最佳适应度值;
步骤3、根据最优麻雀位置和最佳适应度值更新发现者的位置、加入者的位置以及警戒者的位置;
步骤4、根据发现者的位置、加入者的位置以及警戒者的位置获取当前的最优位置,并进行更新操作;迭代次数加1;
步骤5、将当前迭代次数与设置的最大迭代次数进行对比,若大于最大迭代次数,则输出最终的寻优结果,否则返回步骤2。
优选的,采用优化后的XGboost算法对目标函数进行优化求解的过程包括:
步骤1、将采用麻雀搜索算法得到的最优超参数组合作为XGboost算法的超参数输入,其中目标函数为y(x),y(x)表示当输入特征值为x时需要分配的资源大小;
步骤2、构建决策树函数,通过不断的进行特征***来生长每一棵树,每一轮学习一棵树来拟合上一轮模型预测值与实际值之间的残差;
步骤3、根据决策树函数计算模型的损失函数,该损失函数为预测值与真实值之间的平均相对误差;
步骤4、通过训练k棵树,得到每一课树的叶子结点的分数,其中预测结果为将每棵树对应的分数求和的结果;
步骤5、根据模型的损失函数对目标函数进行优化,得到最终的资源分配大小y(x)*,y(x)*表示对于输入样本的最终预测结果;
步骤6、将集群中所有虚拟机节点按照资源的可用性大小进行排序,筛选出满足资源约束条件的虚拟机节点,按照虚拟机节点的既定顺序进行执行器的放置。
本发明的有益效果:
本发明采用麻雀搜索算法(SSA)对XGboost算法的超参数进行选取高了算法的预测精度;本发明构建了Spark Streaming作业的成本模型,根据XGboost算法的预测结果,使用BFD算法进行Spark Streaming执行器的放置,提高了集群的资源利用率,降低了集群使用成本。
附图说明
图1为本发明基于SSA-XGboost算法的大数据处理框架的动态资源分配方法流程图;
图2为本发明SSA-XGboost算法的流程图;
图3为本发明基于Spark Streaming框架增加或者修改的模块图;
图4为Spark Streaming集群节点的架构图;
图5为Spark Streaming执行器放置策略图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了能够在Spark Streaming中顺利的实现本发明提供的基于SSA-XGboost算法的低成本Spark Streaming动态资源分配算法,需要对Spark Streaming模块进行一定的改动,如图3所示,Model Building模块为新增的模型训练模块,即是通过Spark Streaming日志和监控脚本数据训练SSA-XGboost算法模型;Online Predicter为新增的资源预测模块,即是训练好的SSA-XGboost算法模型;Job Generator和Executor Allocation Manager为需要修改的模块,分别用于实现批次划分时间间隔的调整和Spark Streaming执行器的放置。Spark Streaming为流式处理框架。
一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法,如图1所示,该方法包括:
S1、构建Spark Streaming作业的成本模型,根据Spark Streaming作业的成本模型构建目标函数;
S2、获取Spark Streaming作业的成本模型的运行数据,并对运行数据进行清洗;其中,运行数据包括批处理时间内的数据量大小、批次划分间隔、数据块划分间隔、CPU和内存资源的使用情况;
S3、根据清洗后成本模型的运行数据采用优化后的XGboost算法对目标函数进行优化求解,得到Spark Streaming每一批次时间内所需的最佳资源大小;
S4、根据求得的最佳资源大小采用BFD算法进行Spark Streaming执行器的放置。
在本实施例中构建集群环境下Spark Streaming作业的成本模型,集群使用成本最小化作为目标函数,所述Spark Streaming集群使用成本可概括为所有使用的虚拟节点的总成本,所述虚拟节点为虚拟机;虚拟节点具有资源可用性限制,所述资源包括CPU资源和内存资源,因此,考虑对该成本模型下的目标函数设定约束条件;总体优化目标为:
其中,minC表示整个Spark Streaming集群的使用成本,即所有被使用的虚拟节点的成本之和;Fk表示使用一个类型为k的虚拟节点所需的固定成本;mjk为表示第j个类型为k的虚拟节点是否被使用的二进制决策变量,是则取值1,否则取值0。
对目标函数设定的约束条件包括Spark Streaming执行器放置约束和资源容量约束。其中,Spark Streaming执行器放置约束为:
其中,η表示Spark Streaming集群中所有虚拟节点的类型构成的集合,δk表示所有类型为k的虚拟节点构成的集合;表示运行当前Spark Streaming作业所需的执行器集合;nijk为表示执行器i是否被放置在第j个类型为k的虚拟节点上,是则取值1,否则取值0。
资源容量约束为:
其中,μcpu表示当前Spark Streaming作业的某一执行器的CPU资源需求,表示第j个类型为k的虚拟节点的可用CPU资源;μmem表示当前Spark Streaming作业的某一执行器的内存资源需求,表示第j个类型为k的虚拟节点的可用内存资源。
如图2所示,麻雀搜索算法(SSA)优化XGboost算法的步骤为:
步骤1:选择好XGboost算法需要优化的超参数,比如n_estimators表示子模型的数量,max_depth表示树的深度,learning_rate表示每个迭代产生的模型的权重和学习率的比值,eta表示学习率,n_jobs表示使用多少个线性并行构建模型;
步骤2:获取Spark Streaming运行日志和监控脚本数据,包括批处理时间内的数据量大小,批次划分间隔,数据块划分间隔,CPU和内存资源的使用情况,并对获取到的数据按照一定的规则进行数据清洗;
步骤3:特征选取为批处理时间内的数据量大小,批次划分间隔,数据块划分间隔,总处理时间,目标为CPU和内存资源使用量;
步骤4:初始化麻雀种群,定义最大迭代次数,发现者数量,加入者数量,警戒者比例,安全阈值参数;
步骤5:根据优化的目标计算每个麻雀的适应度值,并根据适应度对种群进行排序,从而求得当前的最优麻雀位置,以及最佳适应度值;
步骤6:获取当前的最优位置,并进行更新操作;
步骤7:满足终止准则后,输出最佳的参数组合;
步骤8:XGboost获取最优参数组合,训练模型;
在麻雀搜索算法(SSA)中,计算每个麻雀的适应度值的公式为:
在每次迭代过程中,发现者的位置更新如下:
其中,t表示当前迭代数,j=1,2,3,...,d;itermax表示最大的迭代次数,表示在第t次迭代中第i个麻雀在第j维中的位置信息,α∈(0,1]表示一个随机数,R2表示预警值,ST表示警戒阈值,Q为服从标准正太分布的随机数,L表示一个1×d的矩阵,每个元素全部为1。
更新加入者的位置模型为:
其中,表示在第t次迭代中第i个麻雀在第j维中的位置信息,表示目前发现者所占据的最优位置,Xworst表示当前全局最差的位置,A表示一个1×d的矩阵,其中每个元素随机赋值为1或-1,n表示种群数,L表示一个1×d的矩阵,每个元素全部为1。
警戒者的位置更新为:
其中,是当前迭代次数中所有麻雀中的最优位置,β表示步长控制参数,表示在第t次迭代中第i个麻雀在第j维中的位置信息,表示第t次迭代中全局最差的位置,K∈[0,1]是一个随机数,fi表示当前麻雀个体的适应度值,fg表示当前迭代次数中的全局最佳的适应度值,fw表示当前迭代次数中的全局最差的适应度值,ε表示常数。
XGboost算法是boosting算法的一种,其决策树函数为:
损失函数为:
目标函数为:
如图5所示,该图展示了不同执行器的放置策略,会使用BFD算法根据最佳资源大小在集群中部署执行器,整个集群的节点架构图如图4所示。
本发明方法在XGboost算法的参数组合选择上进行优化,利用麻雀搜索算法(SSA)的全局寻优能力搜索出XGboost算法的最佳参数组合,进而提高XGboost算法预测的准确性,然后使用BFD算法根据预测结果进行Spark Straming执行器的放置,达到降低集群使用成本,提高集群利用率的目的。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法,其特征在于,包括:
S1、构建Spark Streaming作业的成本模型,根据Spark Streaming作业的成本模型构建目标函数;
S2、获取Spark Streaming作业的成本模型的运行数据,并对运行数据进行清洗;其中,运行数据包括批处理时间内的数据量大小、批次划分间隔、数据块划分间隔、CPU和内存资源的使用情况;
S3、根据清洗后成本模型的运行数据采用优化后的XGboost算法对目标函数进行优化求解,得到Spark Streaming每一批次时间内所需的最佳资源大小;
S4、根据求得的最佳资源大小采用BFD算法进行Spark Streaming执行器的放置。
2.根据权利要求1所述的一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法,其特征在于,目标函数的表达式为:
其中,Fk表示使用一个类型为k的虚拟节点所需的固定成本,η表示Spark Streaming集群中所有虚拟节点类型构成的集合,δk表示所有类型为k的虚拟节点构成的集合;mjk表示第j个类型为k的虚拟节点是否被使用的二进制决策变量,nijk表示执行器i是否被放置在第j个类型为k的虚拟节点上,表示运行当前Spark Streaming作业所需的执行器集合;μcpu表示当前Spark Streaming作业的某一执行器的CPU资源需求,表示第j个类型为k的虚拟节点的可用CPU资源;μmem表示当前Spark Streaming作业的某一执行器的内存资源需求,表示第j个类型为k的虚拟节点的可用内存资源,C1表示Spark Streaming集群中虚拟机上已经放置的执行器数量大小,C2表示需要放置的执行器的CPU核数要不大于当前虚拟机的剩余CPU核数大小,C3表示需要放置的执行器的内存大小要不大于当前虚拟机的剩余内存大小。
3.根据权利要求2所述的一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法,其特征在于,计算虚拟节点的可用性的过程包括:
步骤1:将虚拟节点的可用CPU资源和可用内存资源进行归一化处理;
步骤2:基于标准离差法确定可用CPU资源和可用内存资源的客观权重;
步骤3:将CPU资源和可用内存资源与对应客观权重进行加权融合,得到虚拟节点的资源可用性。
6.根据权利要求1所述的一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法,其特征在于,优化后的XGboost算法包括:采用麻雀搜索算法求出XGboost算法的最优超参数组合,具体步骤包括:
步骤1、初始化麻雀种群,包括最大迭代次数、发现者数量、加入者数量、警戒者比例以及安全阈值参数;
步骤2、根据优化目标计算每个麻雀的适应度值,并根据适应度对种群进行排序,得到当前的最优麻雀位置和最佳适应度值;
步骤3、根据最优麻雀位置和最佳适应度值更新发现者的位置、加入者的位置以及警戒者的位置;
步骤4、根据发现者的位置、加入者的位置以及警戒者的位置获取当前的最优位置,并进行更新操作;迭代次数加1;
步骤5、将当前迭代次数与设置的最大迭代次数进行对比,若大于最大迭代次数,则输出最终的寻优结果,否则返回步骤2。
8.根据权利要求3所述的一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法,其特征在于,更新发现者的位置的模型为:
其中,t表示当前迭代数,itermax表示最大的迭代次数,表示在第t次迭代中第i个麻雀在第j维中的位置信息,α∈(0,1]表示一个随机数,R2表示预警值,ST表示警戒阈值,Q为服从标准正太分布的随机数,L表示一个1×d的矩阵;
更新加入者的位置模型为:
其中,表示在第t次迭代中第i个麻雀在第j维中的位置信息,表示目前发现者所占据的最优位置,Xworst表示当前全局最差的位置,A表示一个1×d的矩阵,其中每个元素随机赋值为1或-1,n表示种群数,L表示一个1×d的矩阵;
更新的警戒者模型为:
9.根据权利要求1所述的一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法,其特征在于,采用优化后的XGboost算法对目标函数进行优化求解的过程包括:
步骤1、将采用麻雀搜索算法得到的最优超参数组合作为XGboost算法的超参数输入,其中目标函数为y(x),y(x)表示当输入特征值为x时需要分配的资源大小;
步骤2、构建决策树函数,通过不断的进行特征***来生长每一棵树,每一轮学习一棵树来拟合上一轮模型预测值与实际值之间的残差;
步骤3、根据决策树函数计算模型的损失函数,该损失函数为预测值与真实值之间的平均相对误差;
步骤4、通过训练k棵树,得到每一课树的叶子结点的分数,其中预测结果为将每棵树对应的分数求和的结果;
步骤5、根据模型的损失函数对目标函数进行优化,得到最终的资源分配大小y(x)*,y(x)*表示对于输入样本的最终预测结果;
步骤6、将集群中所有虚拟机节点按照资源的可用性大小进行排序,筛选出满足资源约束条件的虚拟机节点,按照虚拟机节点的既定顺序进行执行器的放置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211595525.5A CN115794405A (zh) | 2022-12-13 | 2022-12-13 | 一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211595525.5A CN115794405A (zh) | 2022-12-13 | 2022-12-13 | 一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794405A true CN115794405A (zh) | 2023-03-14 |
Family
ID=85419595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211595525.5A Pending CN115794405A (zh) | 2022-12-13 | 2022-12-13 | 一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794405A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064281A (zh) * | 2021-11-22 | 2022-02-18 | 重庆邮电大学 | 一种基于BFD-VNS算法的低成本Spark执行器放置方法 |
-
2022
- 2022-12-13 CN CN202211595525.5A patent/CN115794405A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064281A (zh) * | 2021-11-22 | 2022-02-18 | 重庆邮电大学 | 一种基于BFD-VNS算法的低成本Spark执行器放置方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Multi-step-ahead host load prediction using autoencoder and echo state networks in cloud computing | |
CN111427750B (zh) | 一种计算机平台的gpu功耗估计方法、***及介质 | |
CN110688219B (zh) | 基于反向混沌布谷鸟搜索的自适应权重负载均衡算法 | |
CN111416797B (zh) | 改进天牛群算法优化正则化极限学习机的入侵检测方法 | |
CN112363896A (zh) | 日志异常检测*** | |
CN112463337B (zh) | 一种用于移动边缘计算环境下的工作流任务迁移方法 | |
CN108399105B (zh) | 一种基于改进头脑风暴算法的软硬件划分方法 | |
CN116644804B (zh) | 分布式训练***、神经网络模型训练方法、设备和介质 | |
CN115794405A (zh) | 一种基于SSA-XGboost算法的大数据处理框架的动态资源分配方法 | |
Alabas et al. | A comparison of the performance of artificial intelligence techniques for optimizing the number of kanbans | |
CN113240100A (zh) | 基于离散Hopfield神经网络的并行计算方法及*** | |
CN111488208B (zh) | 基于可变步长蝙蝠算法的边云协同计算节点调度优化方法 | |
CN114650321A (zh) | 用于边缘计算的任务调度方法及边缘计算终端 | |
CN113220466A (zh) | 一种基于长短期记忆模型的云服务负载通用预测方法 | |
CN112463532A (zh) | 构建snn工作负载自动映射器的方法及自动映射器 | |
CN111984514A (zh) | 基于Prophet-bLSTM-DTW的日志异常检测方法 | |
CN116501444A (zh) | 智能网联汽车域控制器虚拟机异常云边协同监测和恢复***及方法 | |
CN114510871A (zh) | 基于思维进化和lstm的云服务器性能衰退预测方法 | |
CN113641496A (zh) | 基于深度强化学习的dids任务调度优化方法 | |
Guo et al. | Improved CS algorithm and its application in parking space prediction | |
Du et al. | OctopusKing: A TCT-aware task scheduling on spark platform | |
Dlapa | Cluster restarted DM: New algorithm for global optimisation | |
Zhao et al. | Explore adaptive dropout deep computing and reinforcement learning to large-scale tasks processing for big data | |
CN116050499B (zh) | 一种模型并行训练中的自适应模型划分方法、***及设备 | |
US20230289563A1 (en) | Multi-node neural network constructed from pre-trained small networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |