yarn面试题汇总大全

yarn主要作用

YARN 的基本设计思想是将MapReduce V1 中的JobTracker 拆分为两个独立的服务:ResourceManager 和ApplicationMaster。ResourceManager 负责整个系统的资源管理和分配,ApplicationMaster 负责单个应用程序的的管理。

yarn的结构

yarn总体上是master/slave结构,主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个组件组成。

  • 2.1 RM
    RM 是一个全局的资源管理器,负责整个系统的资源管理和分配,它主要由两个部分组成:调度器(Scheduler)和应用程序管理器(Application Manager)。
    调度器根据容量、队列等限制条件,将系统中的资源分配给正在运行的应用程序,在保证容量、公平性和服务等级的前提下,优化集群资源利用率,让所有的资源都被充分利用。
    应用程序管理器负责管理整个系统中的所有的应用程序,包括应用程序的提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重启它。

  • 2.2 AppMaster
    用户提交的一个应用程序会对应于一个ApplicationMaster,它的主要功能有:

    • a.与RM 调度器协商以获得资源,资源以Container 表示。
    • b.将得到的任务进一步分配给内部的任务。
    • c.与NM 通信以启动/停止任务。
    • d.监控所有的内部任务状态,并在任务运行失败的时候重新为任务申请资源以重启任务。
  • 2.3 NodeManager
    NodeManager 是每个节点上的资源和任务管理器,一方面,它会定期地向RM 汇报本节点上的资源使用情况和各个Container 的运行状态;另一方面,他接收并处理来自AM 的Container 启动和停止请求。

  • 2.4 Container
    Yarn中的资源抽象,它封装了某个节点上的多维度资源,如内存,CPU,磁盘,网络等。AppMaster向NodeManager申请资源的时候,资源是以container的形式表示的。一个应用程序会分配一个Container,这个应用程序只能使用这个Container 中描述的资源。不同于MapReduceV1 中槽位slot 的资源封装,Container 是一个动态资源的划分单位,更能充分利用资源。

3,yarn的工作流程
在这里插入图片描述

4 yarn的调度器

4.1 FIFO Scheduler(队列调度器)
按任务提交的顺序排成一个队列,这是一个先进先出队列。在进行资源分配的时候,先给队列中最头上的任务分配资源,然后再分配给下一个。这是最简单也是最容易理解的调度器,但是它不适用与共享集群,大的任务会占用所有的集群资源,这就导致其它任务被阻塞。
4.2 Capacity Scheduler(容量调度器)
Capacity调度器允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,这样整个集群就可以通过设置多个队列的方式为多个组织提供服务了。除此之外,队列内部又可以垂直划分,这样一个组织内部的多个成员就可以共享这个队列资源,在一个队列的内部,资源的调度采用的是先进先出策略。
在这里插入图片描述

4.3 Fair Scheduler(公平调度器)

在这里插入图片描述

5 YARN高可用

YARN ResourceManager 的高可用与 HDFS NameNode 的高可用类似,但是 ResourceManager 不像 NameNode ,没有那么多的元数据信息需要维护,所以它的状态信息可以直接写到 Zookeeper 上,并依赖 Zookeeper 来进行主备选举。
在这里插入图片描述

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值