一、YARN是什么
- YARN是Hadoop的核心组件之一
- 主要负责资源的管理(将系统资源分配给集群中运行的各种运行程序)和作业的调度(调度在不同的节点上执行的任务)
- YARN的基本思想是将资源管理和作业调度分解为单独的daemon
- Yarn的设计目标就是允许我们的各种应用以共享、安全、多租户的形式使用整个集群
二、YARN的架构
- YARN总体上是主/从结构,RM为master,NM为slave
- 主要包括RM,NM,AM,Container等几个组件
- RM:是master上一个独立运行的进程,负责集群统一的资源管理、调度、分配。
- NM:是slave上一个独立运行的进程,负责上报节点的状态。
- AM:Application的负责人,负责Application的运行,以及资源的申请。
- Container:分配资源的单位,包括内存、CPU等
三、YARN应用提交过程
- Client将应用提交给RM
- RM为应用程序申请资源,并与某个NM进行通信启动第一个Container,以启动AM
- AM向RM注册,并且为应用程序申请资源,与NM通信,以启动相应的Container来运行Task
- Task向AM汇报Task运行的状态,client通过与AM交流获得应用的运行状态
- 一但应用运行完成,AM向RM注销,释放资源,整个应用程序结束。