总体思想是将集群配置优化过程建模为马尔科夫过程,通过训练DRL代理来动态优化集群调度器配置。
目的是使作业等待时间最短,提高资源利用效率。
模型部分
经验部分:
使用的Prioritized DDQN中的思想,方法是使用sumtree,有价值的样本被选定的概率越大。
sumtree如下图所示
Dueling DDQN:
状态价值估计和优势函数估计是通过构建网络结构分离的,其学习过程是无监督的。分离的原因是为了去除多余的自由度,提高算法的稳定性。
Noisy DQN:
一定程度上随机选择动作,增加模型的探索能力。
A3C:
rainbow中未找到具体应用部分,待补充。
建模部分:
样本包括状态,动作,回报和下一步的状态。
状态包括正在运行的作业,等待运行的作业,资源(cpu,内存),队列约束(如资源占比),作业约束
作业包括提交时间,优先级,包括的task。
集群状态获取:通过yarn自带的rest api。
执行决策:yarn所带的shell命令
回报为等待时间的相反数(目的是使等待时间最短)
系统总体分为四个模块:Env模块、Agent模块、ReplayMemory模块和总控Controller模块
运行总流程
运行测试部分
测试的作业参数如下:
运行结果如下: