yarn 的知识要点

yarn是一个资源调度系统,也可以视为一个在hadoop2.0平台上的插件系统,在HDFS的基础上,可以在yarn上运行多个计算框架,例如spark、sparksteaming、flink、MR等。

Hadoop2.0下的yarn可运行的计算框架

一、yarn的核心

RM(resource manager)的职责:

1.除了客户端的请求,接受JobSubmitter提交的作业(按照作业的上下文(Context))信息run.sh提交的参数,以及从NM(nodemanager)收集来的状态信息),启动调度过程,分配一个container作为APP master

2.RM作为中心服务,拥有系统中所有应用的资源分配决定权,其工作是调度、启动每一个job所属的application、监控application的存在情况

3.通过心跳通信,达到监控NM(nodemanager)

4.RM有一个纯碎的调度器组件scheduler

NM(nodemanager)的职责:

1.是slave进程,是每台机器的框架代理

2.处理来自RM的任务请求

3.接受处理来自AM(application master)的container的启动、停止请求

4.启动应用程序的container,并监控资源使用情况,并报告给RM

AM(application master)的职责:

1.应用程序的master,每一个应用对应一个AM,在用户提交一个应用程序时,一个AM的轻量型进程实力会启动,AM会协调这个应用程序内的所有任务的执行

2.负责一个job任务生命周期内的所有工作

3.每一个job都有一个AM,运行在RM机器之外的机器上

4.和NM协同工作,与RM的scheduler协商合适的container,并监控

container:

1.container(进程需要的资源cpu,内存,io)是进程

在mapreduce中container作为一个map task或者是一个reduce task

在spark container 可以同时拥有map task(线程)+reduce task(线程)

二、yarn的运行过程


运行图

1.client端提交一个任务请求给RM,RM运行之

2.RM选择一个NM启动container,运行application master

3.AM向RM请求适合的container来运行请求

4.AM通过请求获得更多的container来运行作业

三、高可用

1.RM挂掉:通过zookeeper设置备用RM,所谓高可用,当前RM挂掉,备用RM上位(机器要单数,zookeeper才可保证有一台被选主)

2.AM挂掉:通知RM,RM重启挂掉的AM,AM上有个RM applicationmanager,记录着AM的任务记录,已经完成的application不会重复

3.NM挂掉:不止一个,当一个挂掉,会通过心跳方式通知RM,RM知会AM,做进一步处理

你可能感兴趣的:(yarn 的知识要点)