这是我参与「第四届青训营 」笔记创作活动的第16天
1 YARN概述
1.1 初识调度系统–场景导入
- 学校为改善学生生活新建了一所美食餐厅,餐厅座位有限且只能堂食;
- 各学院需缴纳一定管理费用后学生才能在该餐厅用餐,缴纳费用与分配的座位数成正比;
- 因餐厅物美价廉、环境干净,来该餐厅就餐的人络绎不绝;
如何进行高效座位分配在保障就餐公平性的前提下让尽可能多的学生都能够及时就餐、尽可能多的座位被有效使用?
1.1.1 一种简易分配模型
- 各个学院:获得座位数
- 学院学生:按照学院组织
- 餐厅经理:分配餐厅座位
- 餐厅座位:有序排列放置
1.1.2 优化的分配模型
-
保障公平性
- 学院间:低分配座位满足率优先
- 学院内:先来先服务
-
保障高效性
- 配备餐厅助手
- 用餐小组负责人
-
保障高可用
- 配置备用经理
-
如何满足“尽可能多”?
- 座位超售:分配座位大于总座位数
- 学院超用:学院可以超分配座位
- 座位超发:“—个座位坐两个人”
- 鼓励快餐:鼓励快速就餐离开
-
如何满足就餐学生个性化需求?
- 用餐小组必须坐一个桌子
- 用餐小组必须坐不同桌子
- 用餐小组必须靠窗位置坐
- 有重要活动同学需靠前就餐
1.2 调度系统演进
1.2.1 调度系统发展的背景
- IT 到 DT 时代的变革,注重数据价值
- 数据计算方式的变革,注重计算效率
- 企业对外服务需数以万计的硬件资源
- 灵活调度、提高利用率是降本增效的关键问题
1.2.3 调度系统解决的问题
- 当用有限资源解决有限资源无法满足的需求时就需要调度
- 调度系统主要解决资源请求和可用资源间的映射(Mapping)问题
1.2.4 调度系统预达的目标
- 严格的多租户间公平、容量保障
- 调度过程的高吞吐与低延迟
- 高可靠性与高可用性保障
- 高可扩展的调度策略
- 高集群整体物理利用率
- 满足上层任务的个性化调度需求
- 任务持续、高效、稳定运行
1.2.5 调度系统范型
- 集中式:融合资源管理调度和任务控制
- 两层式:资源管理调度和任务控制解耦
- 共享状态式:多个调度器基于乐观并发共享全局资源视图
- 分布式:多个调度器基于先验知识进行最快调度决策
- 混合式:多种类型调度器共存,共同分配
1.3 YARN设计思想-演化背景:
-
Hadoop 1.0时代:
- 可扩展性差
- 可靠性差
- 资源利用率低
- 无法支持多种计算框架
-
Hadoop 2.0时代:
- 资源管理和任务控制解耦
- YARN(Yet Another Resource Negotiator)支持多种计算框架的统一资源管理平台
离线生态:
面临挑战:
- 公平性:各租户能够公平的拿到资源运行任务
- 高性能:高调度吞吐、 低调度延迟,保障资源快速流转
- 高可用:集群要具备很强的容错能力
- 大规模:单集群规模提升(原生YARN 5K)
- 高集群资源利用率
- 高任务运行质量保障
2 核心模块
2.1 Resource Manager
2.1.1 整体架构
2.1.2 主要职责
RM负责集群所有资源的统一管理和分配,接收各节点汇报信息并按照一定策略分配给各个任务。
- 与客户端交互
- 启动和管理所有AM
- 管理所有NM
- 资源管理与调度
- 组织资源(资源池)
- 组织任务(队列)
- 接收资源请求
- 分配资源
3 重要机制
3.1 公平性保障——调度策略
-
为什么需要Fair Share调度策略?
- 实现队列间资源共享,提高资源利用率;
- 缓解繁忙队列压力;
-
什么是Fair Share调度策略?
- 队列空闲时按照一定策略将资源分配给其他活跃队列;
-
Fair Share类型
- Steady Fair Share
- Instantaneous Fair Share
总结
这节课主要学习了yarn的基本原理,设计思想,整体架构,以及一些调度系统,让我对yarn的整体的工作流程有了一定的了解。