一种异构集群下Spark应用的能量感知调度方法技术

技术编号:24330762 阅读:41 留言:0更新日期:2020-05-29 19:31
本发明专利技术公开了一种异构集群下Spark应用的能量感知调度方法,从云服务提供商的角度出发,在满足用户需求的同时,最小化提供商数据中心的能耗。用户提交的Spark应用会被分解为任务序列,将任务分配到合适的机器上,同时动态调整任务执行序列,在保证调整代价最小化的同时,使得当前任务能够满足截止期。本发明专利技术通过实现动态分配合适资源,优化了Spark应用执行的能耗。

【技术实现步骤摘要】
一种异构集群下Spark应用的能量感知调度方法
本专利技术涉及一种硬截止时间约束的异构集群环境下Spark应用的能量感知任务调度方法,属于云计算资源调度

技术介绍
过去十年来,云计算数据中心占到了全球所用总电量的2.4%,并且产生了300亿美元的经济影响。数据中心消耗的能源每年增长超过15%,能源成本占数据中心运营成本的42%左右。考虑到服务器等硬件成本仍然在不断下降,可以说在不久的将来数据中心成本的很大一部分是能耗成本。因此,在向客户提供服务时,数据中心最大限度地降低能耗是十分必要的。任务调度对于数据中心的节能至关重要。例如,在AIS(All-InStrategy)系统中,只要还有一台服务器仍在工作,就无法统一关闭集群中其他空闲的服务器,数据中心就会浪费大量能量。如果使用合理的调度策略,使得这几台服务器几乎同时间完成,那么一方面可以缩短任务执行时间,另一方面可以尽早统一关闭服务器,从而降低能耗。Spark默认调度策略有2种:FIFO模式和Fair共享模式调度策略,但是上述两种策略缺乏整体上对资源的掌控与分配,会造成很多不必要的开销和资源的浪费。比如,在FIFO模式下,将Spark任务流中的任务按照初始任务序列将任务分配到集群中,则集群中各节点在任务执行时可能会出现高能耗节点超负荷运行而低能耗节点处于“空闲”状态,造成整个应用不能在截止时间内完成执行失败,或者能耗过高的问题。
技术实现思路
专利技术目的:针对云计算环境下的调度优化问题也是围绕最大化用户层面或者服务提供商层面的利益来考虑,提出一种异构集群下Spark应用的能量感知调度方法。本专利技术基于在数据中心异构集群下基于能量感知的Spark任务调度问题,考虑到Spark应用工作流的特点,基于已有的Spark任务调度器进行改进,构造能耗感知任务,在满足SLA的情况下,执行Spark应用同时消耗最少的能量。其中,SLA指的是应用程序的硬截止时间。技术方案:一种异构集群下Spark应用的能量感知调度方法,包括如下步骤:步骤1,根据Spark工作流的偏序性质,确定Spark任务流的有效拓扑排序,根据排序模型来生成调度队列Q;步骤2,依次从调用队列中Q中取出任务vi,计算任务vi在每个物理机Mk上的处理时间得到最早完成时间,通过计算最小的调度长度来获得该Spark应用的确切松弛时间;步骤3,对所有任务进行执行时间估计,根据估算出来的任务执行时间以及Spark应用工作流的截止期,对任务进行子截止期划分;步骤4,将调度队列Q中的每个任务vi分配给异构的资源,计算总能耗E;步骤5,执行步骤4后,获得初始调度解决方案,机器执行过程中,仍然存在一些松弛时间,特别地,存在于同一个机器上的两个连续任务之间的时间块仍然是空闲的,使用DVFS降低频率,通过减少松弛时间来进一步降低能耗;步骤6,采用基于变邻域下降(VND)的任务序列调整方法,通过交换初始任务调度序列Q0中的任务节点生成新的任务调度系列,转步骤2,来获取能耗更低的资源分配方案;步骤7,如果任务队列Q为空,则方法结束;否则,转步骤4。步骤1中针对Spark应用中Job、Stage的偏序关系,从两个层面来考虑:Job层面考虑设计相应的排序规则,获取Job的排序序列;Stage层面的序列一方面是指同一Job中设计相应的排序规则获取的排序序列,另一方面是指不同的Job中Stage的排序序列。步骤1中所述Spark工作流、排序模型表示,具体为:Spark任务流:S{v1,v2,..,vN}是一个在Job、Stage和Task三个层面上都存在偏序关系的任务流;具体的排序模型有如下三种:(1)为每个任务计算UpwardRank值,根据计算得到的rank(vi)将任务以递增顺序进行排列;(2)为每个任务计算DownwardRank值,根据计算得到的rank(vi)将任务以递增顺序进行排列;(3)为每个任务计算HybridRank值,根据计算得到的rank(vi)将任务以递减的顺序进行排列。步骤4具体包括:步骤41,找到满足任务vi的机器,然后将可接受的任务的机器添加到资源排序队列PM中;步骤42,如果资源排序队列PM不为空,则表示存在满足条件的机器可供分配;对PM中的机器进行排序,排序后的物理机队列依次出队与任务vi匹配,如果不超过任务的子截止期,将任务分配到该机器上执行;步骤43,如果不存在满足子截止期约束的机器,则需要为任务vi创建任务副本vi’,并且为每个任务服务副本vi’选择具有最小最早完成时间的机器。步骤42中机器排序规则具体包括:(1)能耗优先规则:在机器资源队列PM中,按照能耗以递增的顺序对资源队列进行排序,优先选择能耗比较低的机器分配给任务执行;(2)能耗性能比优先规则:在机器资源队列PM中,按照能耗性能比以递增的顺序对资源队列进行排序;优先选择能耗性能比较低的机器分配给任务执行;本方法不考虑频率对能耗的影响,也就是说,所有的机器都应该以最大频率执行;(3)本地优先原则:在机器资源队列PM中,先判断任务vi所需的本地数据是否和当前任务在同一台机器上,优先选择存放本地数据的机器分配给任务执行。在步骤4中,所述异构资源和总能耗具体为:异构资源是指数据中的机器集群的CPU的频率和核数的异构。总能耗是指机器集群在截止时间内成功执行Spark应用消耗的总能耗,即使有的机器处于空闲状态,其消耗的能量也会被算入总能耗中。有益效果:与Spark默认技术相比,本专利技术提供的异构集群下Spark应用的能量感知调度方法,通过实现动态分配合适资源,优化了Spark应用执行的能耗。附图说明图1是本专利技术实施例Spark任务流的结构图;图2是本专利技术实施例的结构图;图3是本专利技术实施例的实现方法的流程图上部分;图4是本专利技术实施例的实现方法的流程图下部分。具体实施方式下面结合具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。如图1所示,本实施例中假设数据中心中包括3种机器:高频率的机器、中频率的机器、低频率的机器。Spark工作流S={v1,v2,v3,…vN},其中vi是Spark工作流的第i个任务,截止期为D。本专利技术实施例在异构集群环境下Spark应用的能量感知调度方法,首先针对Spark应用中Job、Stage的偏序关系,从两个层面来考虑:Job层面考虑设计相应的排序规则,获取Job的排序序列;Stage层面的序列一方面是指同一Job中设计相应的排序规则获取的排序序列,另一方面是指不同的Job中Stage的排序序列;然后进行任务分配,根据排序后的Job、Stage调度序列将任务分配到合适的机器的core中,任务分配包括三个本文档来自技高网...

【技术保护点】
1.一种异构集群环境下Spark应用的能量感知调度方法,其特征在于,包括如下步骤:/n步骤1,根据 Spark工作流的偏序性质,确定 Spark任务流的有效拓扑排序,根据排序模型来生成调度队列Q;/n步骤2,依次从调用队列中Q中取出任务vi,计算任务vi 在每个物理机 Mk 上的处理时间得到最早完成时间,通过计算最小的调度长度来获得该Spark 应用的确切松弛时间;/n步骤3,对所有任务进行执行时间估计,根据估算出来的任务执行时间以及Spark应用工作流的截止期,对任务进行子截止期划分;/n步骤4,将调度队列Q 中的每个任务vi 分配给异构的资源,计算总能耗E;/n步骤5,执行步骤4后,获得初始调度解决方案,使用DVFS降低频率;/n步骤6,采用基于变邻域下降的任务序列调整方法,通过交换初始任务调度序列 Q0中的任务节点生成新的任务调度系列,转步骤2,来获取能耗更低的资源分配方案;/n步骤7,如果任务队列Q为空,则方法结束;否则,转步骤4。/n

【技术特征摘要】
1.一种异构集群环境下Spark应用的能量感知调度方法,其特征在于,包括如下步骤:
步骤1,根据Spark工作流的偏序性质,确定Spark任务流的有效拓扑排序,根据排序模型来生成调度队列Q;
步骤2,依次从调用队列中Q中取出任务vi,计算任务vi在每个物理机Mk上的处理时间得到最早完成时间,通过计算最小的调度长度来获得该Spark应用的确切松弛时间;
步骤3,对所有任务进行执行时间估计,根据估算出来的任务执行时间以及Spark应用工作流的截止期,对任务进行子截止期划分;
步骤4,将调度队列Q中的每个任务vi分配给异构的资源,计算总能耗E;
步骤5,执行步骤4后,获得初始调度解决方案,使用DVFS降低频率;
步骤6,采用基于变邻域下降的任务序列调整方法,通过交换初始任务调度序列Q0中的任务节点生成新的任务调度系列,转步骤2,来获取能耗更低的资源分配方案;
步骤7,如果任务队列Q为空,则方法结束;否则,转步骤4。


2.如权利要求1所述的异构集群环境下Spark应用的能量感知调度方法,其特征在于,步骤1中针对Spark应用中Job、Stage的偏序关系,从两个层面来考虑:Job层面考虑设计相应的排序规则,获取Job的排序序列;Stage层面的序列一方面是指同一Job中设计相应的排序规则获取的排序序列,另一方面是指不同的Job中Stage的排序序列。


3.如权利要求1所述的异构集群环境下Spark应用的能量感知调度方法,其特征在于,步骤1中所述Spark工作流、排序模型表示,具体为:
Spark任务流:S{v1,v2,..,vN}是一个在Job、Stage和Task三个层面上都存在偏序关系的任务流;
具体的排序模型有如下三种:
一,为每个任务计算UpwardRank值,根据计算得到的rank(vi)将任务以递增顺序进行排列;

【专利技术属性】
技术研发人员:文建璋陈祥军
申请(专利权)人:南京南软科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1