YARN架构设计也是主从架构,分为Resource Mananger(RM)和Node Manager(NM),其中RM主要负责应用管理和资源调度,NM主要负责容器和作业。
一、YARN架构介绍
YARN架构图如上图所示,详细介绍如下:
ResourceManager(RM):负责对各NM上的资源进行统一管理和调度,将AM分配空闲的Container运行并监控其运行状态。对AM申请的资源请求分配相应的空闲Container。主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager)。调度器(Scheduler):调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位是二、YARN常用命令
1、 查看YARN命令
1.进入hadoop程序目录中的bin目录 2.查看yarn所以命令 yarn
2、查看正在运行的任务
hadoop/bin]$yarn application -list
PS:application_1528463812366_0001,查询的数字1528463812366代表long型下的时间数值
3、杀掉正在运行任务
yarn application -kill 任务id 例:yarn application -kill application_1528463812366_0001
三、YARN三种调度器
应用对YARN资源的请求应该立刻得到满足,但是实际环境中资源有限,一个应用资源的请求可能要等待一段时间才能得到相应的资源。在YARN中,负责应用资源分配的是Schedule,对于调度,其本身就是一个难题。YARN中提供了三种可以选择的调度器:FIFO Schedule、Capacity Schedule、FairSchedule,其对比图如下图所示。
FIFO Schedule:也可称为队列调度器,简单的理解所提交的job一个一个完成。
Capacity Schedule(默认):简单理解就是会额外空出一部分资源,专门用于完成一些小的job,但是若没有相关任务,则这个资源就会一直占用,容易造成资源浪费。
Fair Schedule:一般情况下,调度器选择这种调度方式,简单理解就是我一个job占用全部资源工作,若有小job来,就释放一定的资源去完成小job,小job完成后,大job继续占用,一般不会产生资源浪费。PS:小job提交后需要等待一定时间,等大job释放资源。