Yarn(分布式资源管理与任务调度框架)介绍

1、Yarn 是什么

  • Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)
  • 作用:资源管理与任务调度

2、架构设计

Yarn 设计的核心思想是将JobTracker 的两个主要职责:资源管理和任务调度管理,分别交给两个角色负责。
一个是全局的ResourceManager,一个是每个应用中唯一的ApplicationMaster。Yarn(分布式资源管理与任务调度框架)介绍

YARN 总体上仍然是Master/Slave 结构,在整个资源管理框架中,ResourceManager 为Master,NodeManager 为Slave。YARN 主要由ResourceManager、NodeManager、ApplicationMaster 和Container等几个组件构成。 

  • Client 向ResourceManager 提交启动任务、杀死任务等命令请求;
  • ApplicationMaster 由对应的计算框架编写的应用程序完成。每个应用程序对应一个ApplicationMaster, ApplicationMaster 向ResourceManager 申请资源用于在NodeManager上启动相应的Task;
  • NodeManager 向ResourceManager 通过心跳信息汇报NodeManager 监控状况、任务执行状况、领取任务等。

3、Yarn 双层调度架构

为了克服集中式调度器的不足,双层调度器是一种很容易被想到的解决之道,它可看作是一种分而治之的机制或者是策略下放机制:双层调度器仍保留一个经简化的集中式资源调度器,但具体任务相关的调度策略则下放到各个应用程序调度器完成。

  • 将传统的集中式调度器一分为二,即资源调度器(ResourceManager)和应用程序调度器(ApplicationMaster);
  • ResourceManager 即简化了的集中式资源调度器,具体作业的资源调度和管理由应用程序调度器ApplicationMaster 负责。

Yarn(分布式资源管理与任务调度框架)介绍