Yarn简介

Yarn是Hadoop中的四大组件之一。

Hadoop 的四大组件:common、HDFS、MapReduce、YARN

Yarn是在Hadoop2.x新增的组件,只负责资源的调度,MapReduce则负责计算。

用一句话来概括:

Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce相当于运行于操作系统之上的应用程序。

 

Yarn基本架构

yarn 怎么多线程编译 yarn的两个进程是( ) 和( )_yarn

Yarn主要由ResourceManger、NodeManager、ApplicationMaster和Container等组件构成。

ResourceManger:

RM是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager,AM)。

主要作用:

1)处理客户端请求

2)监控NodeManager

3)启动或监控ApplicationMaster

4)资源分分配和调度

NodeManager:

主要作用:

1)管理单个节点上的资源

2)处理来自ResourceManager的命令

3)处理来自ApplicationManager的命令

ApplicationMaster:

1)负责数据的切分

2)为应用程序申请资源并分配给内部的任务

3)任务的监控与容错

Container:

Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。

 

Yarn的工作流程

yarn 怎么多线程编译 yarn的两个进程是( ) 和( )_应用程序_02

工作机制详解:

步骤1,用户向Yarn提交应用程序,其中包括用户程序、相关文件、启动ApplicationMaster命令、ApplicationMaster程序等。

步骤2,ResourceManager为该应用程序分配第一个Container,并且与Container所在的NodeManager通信,并且要求该NodeManager在这个Container中启动应用程序对应的ApplicationMaster。

步骤3,ApplicationMaster首先会向ResourceManager注册,这样用户才可以直接通过ResourceManager查看到应用程序的运行状态,然后它为准备为该应用程序的各个任务申请资源,并监控它们的运行状态直到运行结束,即重复后面4~7步骤。

步骤4,ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。

步骤5,一旦ApplicationMaster申请到资源后,便会与申请到的Container所对应的NodeManager进行通信,并且要求它在该Container中启动任务。

步骤6,任务启动。NodeManager为要启动的任务配置好运行环境,包括环境变量、JAR包、二进制程序等,并且将启动命令写在一个脚本里,通过该脚本运行任务。

步骤7,各个任务通过RPC协议向其对应的ApplicationMaster汇报自己的运行状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以再任务运行失败时重启任务。

步骤8,应用程序运行完毕后,其对应的ApplicationMaster会向ResourceManager通信,要求注销和关闭自己。