YARN资源管理与调度 | 青训营笔记

289 阅读2分钟

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

一、YARN概述

当用有限资源解决有限资源无法满足的需求时就需要调度。如何充分挖掘硬件资源潜力、灵活进行资源管理与调度以及提高集群整体利用率成为降本增效的关键问题。资源资源管理与调度主要解决资源请求和可用资源的映射(Mapping) 问题,也就是将负载的资源请求与当前计算集群中的可用物理资源通过一定的调度策略进行匹配。

Yarn是Hadoop中的四大组件之一。Hadoop 的四大组件:common、HDFS、MapReduce、YARN。Yarn是在Hadoop2.x新增的组件,只负责资源的调度,MapReduce则负责计算。Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce相当于运行于操作系统之上的应用程序。

二、核心模块

2.1 Resource Manager

  • 整体架构

image.png

  • 主要职责

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

image.png

  • 状态机管理

image.png NEW SAVING:收到任务后,创建RMApplmpl对象并将基本信息持久化;

ACCEPTED:调度器接受该任务后所处的状态,任务等待被分配资源;

RUNNING:任务成功获取到资源并在节点运行;

image.png SCHEDULED:通过合法性检查后所处的状态,开始为该任务分配资源;

ALLOCATED SAVING:收到分配的Container后,在持久化完成前所处的状态;

ALLOCATED:信息持久化完成后所处的状态;

LAUNCHED: RM的ApplicationMasterLauncher与NM通信以启动AM时所处的状态;

image.png

image.png

  • 调度器分析

任务/资源组织 image.png 调度流程

image.png 典型调度器

image.png

2.2 Node Manager

  • 整体架构

image.png

  • 主要职责

image.png

  • 状态机管理 APPlication image.png Container

image.png LocalizedResource

image.png

  • 节点健康检测机制

节点健康检测机制可时刻掌握NM健康状况并及时汇报给RM, RM根据NM是否健康决定是否为其调度新任务。

➢自定义Shell

NodeHealthScriptRunner服务周期性执行节点健康状况检测脚本;

若输出以"ERROR"开头则不健康;

➢检测磁盘损坏数目

判断磁盘损坏标准:若一个目录具有读、 写和执行权限,则目录正常;

LocalDirsHandlerService服务周期性检测NM本地磁盘好坏,坏盘数超过阈值则不健康;

三、重要机制

image.png

3.1 调度策略-Fair Share 调度策略背景

image.png 调度策略- Instantaneous Fair Share定义

image.png 调度策略- Instantaneous Fair Share计算逻辑

image.png 调度策略- DRF(Dominant Resource Fair)调度策略

image.png

image.png 调度策略- DRF调度策略计算逻辑

image.png 重要机制

image.png 事件机制-状态机管理

image.png 事件机制-事件处理模型

image.png 重要机制

image.png 容错机制--高可用性

image.png