Yarn知识点整理
Yarn知识点整理
1、什么是Yarn
通用资源管理系统和调度平台
2、Yarn特点:
1、支持多计算框架
2、资源利用率高,运行成本低,数据共享。
3、Yarn的意义:
降低了企业硬件的成本(多个集群变成一个集群),减少了资源的了浪费,运营成本低。
4、Yarn基本组成
ResourceManager :一个集群资源调度的管理者
NodeManager :一个节点资源调度的管理者(集群各个节点资源的工作者)
ApplicationMaster : 一个计算任务的管理者
Container : 容器(cpu 和 内存)
5、Yarn提交任务的流程

1、application被client向Resource Manager提交,其中包括Application Master必须的信息,例如 Application Master程序、启动 Application Master所需的命令以及相关用户程序等信息.
2、Resource Manager分配一个 container来运行 Application Master.
3、当 Application Master处于运行状态时,其将自我信息注册到 Resource Manager中,成功启动后将保持心跳连接.
4、Application Master将请求 Resource Manager为其分配所需数量的容器.
5、成功申请到 container后, Application Master将执行初始化操作. container初始化完成后,该应用将与对应的 Node Manager建立通信关系,要求 Node Manager启动 container.
6、Node Manager将在容器启动后立即响应相关请求.
7、container在运行期间, Application Master对其实施监控.通过RPC协议, container将定期汇报自己的进度信息以及当前状态等数据给对应的 Application Master.
8、当 application停止运行时, Application Master将从 Resource Manager中注销其记录,并允许相关容器资源得以回收.
6、Yarn的调度方式
FIFO Scheduler : 先进先出(先来后到的顺序)
Capacity Scheduler:容量调度
Fair Scheduler:公平调度
1、先进先出:优先提交的,优先执行,后面提交的等待。(火车过隧道)。
2、容量调度:允许创建多个任务对列,每个队列使用所有资源的一部分。多个任务对列可以同时执行。但是一个队列内部还是先进先出。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内部的数据,实现两个节点的实时元数据同步。
