1.简介

        YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

资源管理器:集群的硬件资源,和程序相关,比如内存,CPU等。

调度平台:多个程序同时申请  计算资源如何分配,调度的规则(算法)。

通用:不仅仅支持MapReduce程序,理论上支持各种计算程序(spark,Flink).YARN不管你干什么,只关心你要资源,在有的情况下给你,用完还我。

2.YARN三大组件

Container容器(资源的抽象)

  • ResourceManager(RM):  YARN集群中的主角色,决定系统中所有应用程序之间资源分配得最终权限,即最终仲裁者。接收用户得作业提交,并通过NM分配、管理各个机器上的计算资源。
  • NodeManager(NM):YARN中的从角色,一台机器一个,负责管理本机器上的计算资源。根据RM命令,启动Container容器、监视容器的资源使用情况。并且向RM主角色汇报资源使用情况。
  • ApplicationMaster(AM):用户提交的每个应用程序均包含一个AM。应用程序内的“老大”,负责程序内部个阶段的资源申请,监督程序的执行情况。

3.核心交互流程

  • MR作业提交                Client——>RM
  • 资源申请                      MrApp Master——>RM
  • MR作业状态汇报         Container( Map|Reduce Task)——>Container(Mr App Master)
  • 节点的状态汇报           NM——>RM

4.YARN中的资源调度器——Scheduler 

YARN可以被看作是分布式操作系统的“内核”,而资源调度器就是这个内核的核心部件,它负责将整个集群的资源(主要是CPU和内存)分配给各个应用程序(如MapReduce、Spark、Flink等)

  • FIFO:单个队列,先进先出
  • Capacity:容量调度,划分队列,队列内FIFO,队列间可以借用
  • Fair:在队列之间和队列内部的应用程序之间都进行公平分享
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐