YARN公司实践|青训营笔记

126 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第10天 今天我学习了YARN资源管理与调度的相关知识。

4.1 Gang调度器-为不需要发Gang 调度器?


流式作业和训练作业的调度需求与批处理有很大的不同:批处理强调高吞吐,而流式训练类型作业更强调低延迟和全局视角;

1.调度缺乏全局视角
2.单App调度过慢
3.App间存在资源互锁

6FA288C0F522F982A70E09B83830F52C.jpg

4.1Gang调度器-Gang调度有什么典型特点?


➢全局视角

V作业可自定义配置强弱约束;

强约束:必须要满足的条件,

弱约束:尽量满足的约束,;

➢低调度延迟

RM维护所有节点状态信息;

资源请求同步分配,毫秒级返回;

➢Gang 性资源交付

提供All-or-Nothing语义;

可满足的请求全部分配,否则返回失败;

4.1Gang调度器-Gang调度器调度流程


➢强约束阶段:过滤掉不符合条件的节点

➢弱约束阶段:选择合适的节点分配资源(不排序,时间复杂度O(n))

1.Quota 平均:分配后节点已使用资源尽可能平均

总请求资源为V1,总节点数为N,已用资源为U,节点目标资源为: S = (V1 + U)/N,遍历所有节点,每个节点分配S- Un即可;

2.跳过高load 节点:优先往低load节点调度

满足load阈值节点N1,不满足N2,优先把N1剩余资源分配完,分配后未满足资源量为V2,每个节点分配V2/N2;

➢兜底分配

4.2反调度器-为什么需要开发反调度器?


➢调度器的调度决策受“时空”限制

"时”:触发调度时刻;

"空”: 触发调度时集群状态;

➢任务运行和集群状态高动态性

1.任务资源使用随流量变化而不断波动;
2.调度过程持续进行,集群状态持续变化;

➢需要持续保证最初调度决策的正确性

4.2反调度器-反调度流程


根据AM请求中的强约束,构造强约束集;

遍历强约束集选择不再符合强约束条件的节点;

遍历异常节点下的Container,选择需要进行反调度的Container;

将反调度Container列表随心跳返回给AM;