这是我参与「第四届青训营 」笔记创作活动的的第3天
一、本堂课重点内容
- 核心模块
- Resource Manager
- Node Manager
- 调度策略
- Fair Share调度策略
- DRF调度策略
- 公司实践
- Gang调度器
- 反调度器
- 单集群50K突破
二、详细知识点介绍
1、Yarn概述
Hadoop Yarn是大数据场景下的资源调度系统,主要负责离线业务场景下的资源调度。 调度系统要解决的问题如下:
- 用有限资源解决有限资源无法满足的需求;
- 主要解决资源请求和可用资源直接的映射(Mapping)问题。
调度系统的分类大致如下:
Yarn的整体架构如下,核心模块主要有Resource Manager和Node Manager:
- Resource Manager
- 资源管理和调度
- 任务生命周期管理
- 对外进行交互
- Node Manager
- 提供集群资源
- 管理Container运行
2、核心模块
a) Resource Manager
Resource Manager负责集群所有资源的统一管理和分配,接收各节点汇报信息并按照一定策略分配个各个任务。主要职责有:
- 与客户端交互
- 启动和管理所有Application Master
- 管理所有Node Manager
- 资源管理与调度
- 组织资源(资源池)
- 组织任务(队列)
- 接收资源请求
- 分配资源
b) Node Manager
Node Manager是节点代理,从Application Manager接收命令(启停Container)并执行,通过心跳方式向Resource Manager汇报节点状态并领取命令(清理Container)。主要职责有:
- 与Resource Manager交互
- 心跳汇报节点状态
- 领取Resource Manager下达的命令
- 与Application Manager交互
- 启动容器
- 停止容器
- 获取容器状态
3、调度策略
为了保障调度系统的公平性,也就是更加合理地分配调度任务,我们需要设计一定的调度策略。目前主要的调度策略有Fair Share调度策略和DRF调度策略。
a) Fair Share调度策略
为什么需要Fair Share调度策略?
- 实现队列间资源共享,提高资源利用率;
- 缓解繁忙队列压力。
什么是Fair Share调度策略?
- 队列空闲时按照一定策略将资源分配给其他活跃队列
Fair Share类型:
- Steady Fair Share
- Instantaneous Fair Share
b) DRF(Dominant Resource Fair)调度策略
为什么需要DRF调度策略?
- 在保证公平性的前提下进行资源降维
什么是DRF调度策略?
- DRF是最大最小公平算法在多维资源上的具体实现;
- 旨在使不同用户的“主分享量”最大化地保持公平。
最大最小公平算法:最大化最小资源需求的满足度
- 资源按照需求递增顺序分配;
- 获取的资源不超过自身需求;
- 未满足用户等价分享剩余资源。
4、公司实践
字节内部使用的调度器为Gang调度器和反调度器。
同时,字节还实现了单集群规模突破50K,有效提升了单集群规模。
单集群规模增大的好处是:
- 更好的资源池化和资源共享
- 资源池更大,利于资源分时服用;
- 资源高效共享,提高集群资源利用率。
- 降低运维成本
- Yarn原生单集群仅支持5K节点;
- 每多一个集群,运维负担就会加重。
三、课后个人总结
本节课学习了Yarn资源调度系统,初步了解了Yarn的整体架构、核心模块、经典调度策略和字节内部对Yarn的优化实现。