YARN资源调度框架详解

1、YARN

(1)Yet Another Resource Negotiator

(2)通用的资源管理系统

(3)为上层应用提供统一的资源管理和调度

2、架构要点:

Client、ResourceManager、NodeManager、ApplicationMaster

master/slave:RM/NM

(1)Client:向RM提交任务、杀死任务等

(2)ApplicationMaster:

  每个应用程序对应一个ApplicationMaster(AM)

  AM向RM申请资源,用于在NM上启动对应的Task

  数据切分

  为每个Task向RM申请资源(container)

  与NodeManager通信

  任务的通信

(3)NodeManager:多个

  真正的干活节点:计算

  向RM发送心跳信息、任务的执行情况

  接收来自RM的请求来启动任务

  处理来自AM的命令

(4)ResourceManager

  ResourceManager有两个主要组件:Scheduler和ApplicationManager。

  集群中同一时刻对外提供服务的,只有1个,负责资源相关的

  启动/监控AM

  监控NM

(5)container

  任务的运行抽象

  memory、cpu...

  task是运行在container里面的

  一个container里面,可以运行AM、也可以运行具体的map/reduce task

(6)数据/资源从client提交到RM后,NM先申请AppMaster,然后AppMaster向ResourceManager申请资源,

AppMaster申请资源ok之后,到对应NodeManager启动container,最后在container中启动map task /reduce task。

(7)ApplicationManager、ApplicationMaster

ApplicationManager负责接受作业提交,协商用于执行特定于应用程序的ApplicationMaster的第一个容器,并提供用于在出现故障时重新启动ApplicationMaster容器的服务。

每个应用程序的ApplicationMaster负责与调度器协商适当的资源容器,跟踪它们的状态并监视进度。

  

  

posted @ 2021-07-19 09:46  酱汁怪兽  阅读(117)  评论(0编辑  收藏  举报