1.一种基于深度强化学习和异构Spark集群的节能调度方法,其特征在于,包括:实时获取在线数据信息,将数据信息输入到训练好的Q网络,Q网络对数据信息进行能耗‑时间目标预测,系统根据能耗‑时间目标预测选择能耗‑时间目标最低的方案进行资源分配;
对Q网络的训练过程为:
S1:获取作业运行的相关配置参数和执行参数;初始化DQN参数;其中,DQN表示Deep Q‑Network即Q网络;
S2:根据获取的相关配置参数计算权重系数;
S3:根据DQN参数生成ε‑Greedy与Boltzmann联合策略;
S4:任务调度器根据ε‑Greedy与Boltzmann联合策略对工作节点进行任务调度;
S5:根据权重系数和执行参数构建能耗‑时间模型;根据任务调度和能耗‑时间模型构建奖励模型,根据奖励模型生成奖励值;
S6:根据奖励值对DQN参数进行更新,得到更新后的DQN参数;
S7:重复执行步骤S3‑S6,当能耗‑时间目标收敛时,完成训练。
2.根据权利要求1所述的一种基于深度强化学习和异构Spark集群的节能调度方法,其特征在于,作业运行的相关配置参数包括:执行器数量、cpu资源和内存资源;作业运行的执行参数包括:作业到达时间、作业标识、作业完成时间和作业持续时间。
3.根据权利要求1所述的一种基于深度强化学习和异构Spark集群的节能调度方法,其特征在于,ε‑Greedy与Boltzmann联合策略为:其中,s表示集群的资源状态;a是一种动作action,表示选择具体的物理机创建执行器并分配资源;a'表示最大Q值的action;Q(s,a)表示在状态s和action为a的情况下,可能得到的一个累积奖励值;A表示随机的一个action;ε表示概率,step表示任务调度器探索的时间步。
4.根据权利要求1所述的一种基于深度强化学习和异构Spark集群的节能调度方法,其特征在于,对工作节点进行任务调度包括:根据ε‑Greedy与Boltzmann联合策略生成动作,根据动作调度资源给工作节点;
若任务部分分配或任务无效分配,则将对任务调度器反馈能耗模型下计算出来的大额负奖励;
若任务成功分配,则将对任务调度器反馈能耗模型下计算出来的正奖励。
5.根据权利要求1所述的一种基于深度强化学习和异构Spark集群的节能调度方法,其特征在于,能耗‑时间模型的公式为:其中,C0、C1、C2分别表示权重系数, 表示第i个节点的cpu利用率, 表示第i个节点的内存利用率,t表示工作节点i开始的工作时间,t'表示在当前cpu利用率和内存利用率下的工作结束时间,EAtotal表示集群产生的能耗,AvgT表示所有作业运行的平均时间,表示作业j的运行时间,M表示作业的数量,n表示节点的数量,φ表示所有的作业,target表示能耗‑时间目标值, 表示对目标的权重。
6.根据权利要求5所述的一种基于深度强化学习和异构Spark集群的节能调度方法,其特征在于,cpu利用率的计算公式为:其中, 表示第i个节点的cpu利用率,n表示节点的数量,i表示具体的节点, 表示在第i个节点上cpu的使用量, 表示在第i个节点上cpu的总量,t表示在第i个节点当前cpu使用率的情况下的运行时间。
7.根据权利要求5所述的一种基于深度强化学习和异构Spark集群的节能调度方法,其特征在于,内存利用率的计算公式为:其中, 表示第i个节点的内存利用率, 表示在第i个节点上内存的使用量,表示在第i个节点上的内存总量,t表示在第i个节点当前内存使用率的情况下的运行时间。
8.根据权利要求1所述的一种基于深度强化学习和异构Spark集群的节能调度方法,其特征在于,奖励模型为:
其中,EAtotal表示一次完整的调度集群产生的能耗,EAmax表示集群中的工作节点全部都是以满负载情况下运行完作业产生的能耗,EAnormalized表示归一化后的能耗,EAepi表示一次任务调度器探索生成的轨迹中,即一次episode中,奖励值中与能耗相关的部分; 表示作业j的运行时间,M表示作业的数量, 表示所有作业的最小平均完成时间,表示归一化后的作业平均完成时间, 表示对目标的权重, 表示在一次episode中,奖励值中与作业的平均完成时间相关的部分,Rfixed表示固定奖励值,Repi表示任务成功分配的真实奖励值。
9.根据权利要求1所述的一种基于深度强化学习和异构Spark集群的节能调度方法,其特征在于,生成奖励值的公式为:
其中,Reward表示生成的奖励值,Repi表示任务成功分配的真实奖励值。
10.一种基于深度强化学习和异构Spark集群的节能调度系统,其特征在于,包括:任务调度模块、能耗计算模块、奖励生成模块以及DQN参数更新模块;
所述任务调度模块用于探索集群环境并根据DQN参数对作业进行调度;
所述能耗计算模块用于根据作业调度结果计算系统能耗;
所述奖励生成模块用于根据系统能耗计算奖励值;
所述DQN参数更新模块用于利用奖励值对网络DQN参数进行更新同时将DQN参数反馈给任务调度模块。