Yarn|青训营笔记

108 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第3天

一、本堂课重点内容

  • 核心模块
    • Resource Manager
    • Node Manager
  • 调度策略
    • Fair Share调度策略
    • DRF调度策略
  • 公司实践
    • Gang调度器
    • 反调度器
    • 单集群50K突破

二、详细知识点介绍

1、Yarn概述

Hadoop Yarn是大数据场景下的资源调度系统,主要负责离线业务场景下的资源调度。 调度系统要解决的问题如下:

  • 有限资源解决有限资源无法满足的需求;
  • 主要解决资源请求和可用资源直接的映射(Mapping)问题。

image.png

调度系统的分类大致如下:

image.png

Yarn的整体架构如下,核心模块主要有Resource Manager和Node Manager:

image.png

  • Resource Manager
    • 资源管理和调度
    • 任务生命周期管理
    • 对外进行交互
  • Node Manager
    • 提供集群资源
    • 管理Container运行

2、核心模块

a) Resource Manager

Resource Manager负责集群所有资源的统一管理和分配,接收各节点汇报信息并按照一定策略分配个各个任务。主要职责有:

  • 与客户端交互
  • 启动和管理所有Application Master
  • 管理所有Node Manager
  • 资源管理与调度
    • 组织资源(资源池)
    • 组织任务(队列)
    • 接收资源请求
    • 分配资源

image.png

b) Node Manager

Node Manager是节点代理,从Application Manager接收命令(启停Container)并执行,通过心跳方式向Resource Manager汇报节点状态并领取命令(清理Container)。主要职责有:

  • 与Resource Manager交互
    • 心跳汇报节点状态
    • 领取Resource Manager下达的命令
  • 与Application Manager交互
    • 启动容器
    • 停止容器
    • 获取容器状态

image.png

3、调度策略

为了保障调度系统的公平性,也就是更加合理地分配调度任务,我们需要设计一定的调度策略。目前主要的调度策略有Fair Share调度策略和DRF调度策略。

a) Fair Share调度策略

image.png

为什么需要Fair Share调度策略?

  • 实现队列间资源共享,提高资源利用率;
  • 缓解繁忙队列压力。

什么是Fair Share调度策略?

  • 队列空闲时按照一定策略将资源分配给其他活跃队列

Fair Share类型:

  • Steady Fair Share
  • Instantaneous Fair Share

b) DRF(Dominant Resource Fair)调度策略

image.png

为什么需要DRF调度策略?

  • 在保证公平性的前提下进行资源降维

什么是DRF调度策略?

  • DRF是最大最小公平算法在多维资源上的具体实现;
  • 旨在使不同用户的“主分享量”最大化地保持公平。

最大最小公平算法:最大化最小资源需求的满足度

  • 资源按照需求递增顺序分配;
  • 获取的资源不超过自身需求;
  • 未满足用户等价分享剩余资源。

4、公司实践

字节内部使用的调度器为Gang调度器和反调度器。

image.png

同时,字节还实现了单集群规模突破50K,有效提升了单集群规模。

image.png

单集群规模增大的好处是:

  • 更好的资源池化和资源共享
    • 资源池更大,利于资源分时服用;
    • 资源高效共享,提高集群资源利用率。
  • 降低运维成本
    • Yarn原生单集群仅支持5K节点;
    • 每多一个集群,运维负担就会加重。

三、课后个人总结

本节课学习了Yarn资源调度系统,初步了解了Yarn的整体架构、核心模块、经典调度策略和字节内部对Yarn的优化实现。