Yarn知识点整理

1、什么是Yarn

通用资源管理系统和调度平台

2、Yarn特点:

  • 支持多计算框架 资源利用率高,运行成本低,数据共享。

3、Yarn的意义:

降低了企业硬件的成本(多个集群变成一个集群),减少了资源的了浪费,运营成本低。

资源指的是什么? CPU   内存

4、Yarn基本组成

ResourceManager  :一个集群资源调度的管理者

NodeManager :一个节点资源调度的管理者(集群各个节点资源的工作者)

ApplicationMaster : 一个计算任务的管理者

Container : 容器(cpu 和 内存)

5、Yarn提交任务的流程

  • client向RM提交应用程序,其中包括启动该应用的ApplicationMaster的必须信息,例如ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
  • ResourceManager启动一个container用于运行ApplicationMaster。
  • 启动中的ApplicationMaster向ResourceManager注册自己,启动成功后与RM保持心跳。
  • ApplicationMaster向ResourceManager发送请求,申请相应数目的container。
  • 申请成功的container,由ApplicationMaster进行初始化。container的启动信息初始化后,AM与对应的NodeManager通信,要求NM启动container。
  • NM启动启动container。
  • container运行期间,ApplicationMaster对container进行监控。container通过RPC协议向对应的AM汇报自己的进度和状态等信息。
  • 应用运行结束后,ApplicationMaster向ResourceManager注销自己,并允许属于它的container被收回。

6、Yarn的调度方式

FIFO Scheduler : 先进先出(先来后到的顺序)

Capacity Scheduler:容量调度
Fair Scheduler:公平调度

  • 先进先出:优先提交的,优先执行,后面提交的等待。(火车过隧道)。
  • 容量调度:允许创建多个任务对列,每个队列使用所有资源的一部分。多个任务对列可以同时执行。但是一个队列内部还是先进先出。CDH默认的调度器。

3、公平调度:第一个程序在启动时可以占用其他对列的资源(100%占用),当其他对列有任务提交时,占用资源的对列需要将资源还给该任务。还资源的时候,效率比较慢。

7、参数yarn.scheduler.fair.allow-undeclared-pools的作用是?(true/false)

如果提交一个任务没有到任何的队列,是否允许创建一个新的队列,默认为true

8、参数yarn.scheduler.fair.user-as-default-queue的作用是?(true/false)

是否提交到默认队列 ,以用户名为默认对列

9、介绍一下hadoopHA

1、HadoopHA 包括两个部分,NameNodeHA和ResourceManagerHA

2、hadoop HA解决了早期版本中的NN单点问题。YarnHA解决了ResourceManager的单点问题

3、NNHA方案中包含两个NN,一个是active状态,一个是StandBy状态。每个NN分配在两个完全独立的服务器中。每个NN所在的节点需配置一个ZKFC。

4、两个NN之间的元数据同步使用JN传递。

10、ZKFC作用:

监控NN所在节点的硬件设备、软件(NN)、操作系统,同时维护与ZK的通信。主要用于两个NN之间状态切换时的信息传递。

11、NN  Active 状态和StandBy状态的确认:

两个NN到ZK集群注册一个临时的ZNode,哪个先注册成功,哪个就是Active,另外一个就是StandBy.

12、ActiveNN宕机后故障如何转移

当ActiveNN节点故障  à  ActiveZKFC通知ZK删除临时ZNode  à StandBy状态的ZKFC订阅这个临时ZNode的变换,若ZNode消失,StandBy状态的ZKCF立刻通知StandBy NN  à  StandBy NN 远程登录ActiveNN,执行Kill -9 ActiveNN  à StandBy NN通知StandBy ZKFC去ZK上注册临时ZNode,注册成功切换为active状态。

13、两个NN之间的元数据信息如何实现快速同步

ActiveNN实时将FSimage和日志接入JN(高效的存储系统)。StandByNN实时获取JN内部的数据,实现两个节点的实时元数据同步。


Yarn的调度器

1、FIFO Scheduler: 先进先出,谁先提交谁先执行(先来后到)。

2、Capacity Scheduler:容量调度器。以列得形式配置集群资源,每个队列可以抢占其他队列得资源。多个队列可以同时执行任务。但是一个队列内部还是FIFO

3、Fair Scheduler 公平调度器,同样以列得形式配置集群资源,每个队列可以抢占其他队列得资源。当被抢占得队列有任务时,抢占得队列奉还资源。不知指出在与奉还资源需要一段时间。

FiFo举例子

排队食堂打饭、排队买车票、医院挂号

容量调度器举例子

多窗口买火车票、多窗口排队食堂打饭、多窗口银行柜台办理业务、高速收费口

公平调度器

军人优先买车票、公交车老人坐

集群提交任务,是什么决定任务分配到哪个节点上?

Yarn(RM,NM)

集群提交任务,偶尔成功,偶尔失败(使用外部配置文件)?

答:程序所需要的数据(配置文件)缺失。有的节点缺失,有的节点不缺失。

解决:在所有的节点上存一份程序所需要的数据(配置文件)

是谁来分配的呢?  答案:Yarn

ResourceManager:一个集群只有一个ResourceManager对外提供服务(可能有多个ResourceManager)

NodeManager:一个集群有多个NodeManager,通常每个DataNode也是NodeManager角色。

Yarn的意义:

降低了企业的硬件开销(硬件成本),降低资源浪费,运行成本低,数据共享。

Yarn的内部组成

  • ResourceManager 一个集群资源的管理者
  • NodeManager 一个节点的资源管理者
  • ApplicationMaster  一个计算任务的管理者,每个计算任务都有一个APPMaster
  • Container 容器,包含内存与cpu

Yarn提交任务的流程

  • client向RM提交应用程序,其中包括启动该应用的ApplicationMaster的必须信息,例如ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
  • ResourceManager启动一个container用于运行ApplicationMaster。
  • 启动中的ApplicationMaster向ResourceManager注册自己,启动成功后与RM保持心跳。
  • ApplicationMaster向ResourceManager发送请求,申请相应数目的container。
  • 申请成功的container,由ApplicationMaster进行初始化。container的启动信息初始化后,AM与对应的NodeManager通信,要求NM启动container。
  • NM启动启动container。
  • container运行期间,ApplicationMaster对container进行监控。container通过RPC协议向对应的AM汇报自己的进度和状态等信息。
  • 应用运行结束后,ApplicationMaster向ResourceManager注销自己,并允许属于它的container被收回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值