HDFS Yarn简介和运行流程

 

YARN:不同的计算框架可以共享同一HDFS集群上的数据,享受整体的资源调度(可以使MR,HDFS,Spark,storm等共用同一集群的框架,YARN可以按框架的资源需求量做出合适的分配)

 

YARN架构:

  1、ResourceManager:RM  

    整个集群同一时间提供服务的RM只有一个,负责集群资源的同一管理和调度(一般会有一个代替者,主RM挂掉后,副RM开始启用,保证服务不会断掉)

    处理客户端的请求:提交/杀死一个作业

    监控NM,一旦一个NM挂了,那么NM上运行的任务需要告诉AM来如何处理(重启还是。。。)

  2、NodeManager:NM

    整个集群中有多个,负责自己本身节点资源管理和使用

    定时向Rm汇报界定啊的资源使用情况(心跳的形式)

    接收并处理来自RM的各种命令:启动Container

    处理来自AM的命令

     单个节点的资源管理

  3、ApplicationMaster:AM

    每一个应用程序对应一个:MR、Spark,负责应用程序的管理

    为应用程序向RM申请资源(core、memory),分配给内部task

    需要与NM通信:启动/停止task,task是运行在container里面,Am也是运行在container

  4、Container

    封装了CPU、Memory等资源的容器

    是一个任务运行环境的抽象

  5、Client

    提交/杀死作业

    查询作业的运行进度

 

YARN的执行流程:

  1、客户端先访问RM,要启动一个任务

  2、RM收到后会分配一个Container,并与对应的NM通信,要求在Container中启动AM

  3、AM会向RM注册(这样用户就可以通过RM得知任务的整个进度),并申请所需资源(CPU、Memory等)(通过RPC协议轮训的方式申请)

  4、AM拿到资源后,告知NM,要求启动任务

  5、NM会为任务设置好环境(环境变量、jar包等),然后将启动命令写成脚本并启动

  6、各个任务会通过RPC协议向AM汇报任务的状态及进度,若是task(任务失败),由AM决定是重启还是。。。

  7、应用程序完成后,AM向RM注销并关闭自己

  

 

posted @ 2018-02-27 17:31  猴子1  阅读(330)  评论(0编辑  收藏  举报