这是我参与「第四届青训营 」笔记创作活动的第13天
YARN 概述
从食堂分配座位场景导入,初识调度系统;介绍调度系统发展的背景、解决的问题、目标和范型;Hadoop YARN 的设计思想和整体架构
调度系统预达目标
- 严格的多租户间公平、容量保障
- 调度过程的高吞吐与低延迟
- 高可靠性与高可用性保障
- 高可扩展的调度策略
- 高集群整体物理利用率
- 满足上层任务的个性化调度需求
- 任务持续、高效、稳定运行
YARN设计思想-面临挑战
- 公平性:各租户能够公平的拿到资源运行任务
- 高性能:高调度吞吐、低调度延迟,保障资源快速流转
- 高可用:集群要具备很强的容错能力
- 大规模:单集群规模提升(原生YARN5K)
- 高集群资源利用率
- 高任务运行质量保障
YARN整体架构-任务运行生命周期核心流程
Resource Manager-主要职责
RM负责集群所有资源的统一管理和分配,接收各节点汇报信息并按照一定策略分配给各个任务。
- 与客户端交互
- 启动和管理所有AM
- 管理所有NM
- 资源管理与调度
- 组织资源(资源池)
- 组织任务(队列)
- 接收资源清求
- 分配资源
Node Manager 节点健康检测机制
节点健康检测机制可时刻掌握 NM 健康状况并及时汇报给RM,RM根据NM是否健康决定是 否为其调度新任务。
- 白定义 Shell
- NodeHealthScriptRunner 服务周期性执行节点健康状况检测脚本;
- 若输出以“ERROR”开头则不健康;
- 检测磁盘损坏数目
- 判断磁盘损坏标准:若一个目录具有读、写和执行权限,则目录正常;
- LocalDirsHandlerService 服务周期性检测 NM 本地磁盘好坏,坏盘数超过阈值则不健康;
重要机制
- 公平性保障
- 为什么需要Fair Share 调度策略?
- Fair Share 调度策略原理
- 为什么需要DRF调度策略?
- DRF 调度策略原理
- 高性能保障
- 高性能对调度的重要性
- 状态机管理
- 事件处理模型
- 高可用保障
- 高可用对调度的重要性
- RM高可用
- NM高可用
总结
- 核心模块
- Resource Manager
- Node Manager
- 调度策略
- Fair Share 调度策略
- DRF调度策略
- 公司实践
- Gang 调度器
- 反调度器
- 单集群50K突破