yarn常用命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yarn常用命令相关的知识,希望对你有一定的参考价值。

参考技术A 1,yarn top:  类似linux里的top命令,查看正在运行的程序资源使用情况

2, yarn queue -status  队列名 :查看指定queue使用情况

3,yarn application -list -appStates 【ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED】

yarn application -list -appTypes [SUBMITTED, ACCEPTED, RUNNING] : 查看app状态

yarn application -movetoqueue application_name -queue 队列名 :移动app到对应的队列

yarn application -kill application_name : kill掉app

yarn application -status application_name :查看app状态

4,yarn applicationattempt -list application_name : 查看app尝试信息

5,yarn classpath --glob : 打印类路径

6,yarn container -list appattempt_name : 打印正在执行任务的容器信息

yarn container -status container_name : 打印当前容器信息

7,yarn jar [mainClass] args... : 提交任务到yarn

8,yarn logs -applicationId application_name: 查看app运行日志

9,yarn node -all -list : 查看所有节点信息

10,yarn daemonlog -getlevel n0:8088 rg.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl : 查看守护进程日志级别

11,yarn resourcemanager [-format-state-store] : RMStateStore的格式化. 如果过去的应用程序不再需要,则清理RMStateStore

12, Usage: yarn rmadmin

-refreshQueues 重载队列的ACL,状态和调度器特定的属性,ResourceManager将重载mapred-queues配置文件

-refreshNodes 动态刷新dfs.hosts和dfs.hosts.exclude配置,无需重启NameNode。

dfs.hosts:列出了允许连入NameNode的datanode清单(IP或者机器名)

dfs.hosts.exclude:列出了禁止连入NameNode的datanode清单(IP或者机器名)

重新读取hosts和exclude文件,更新允许连到Namenode的或那些需要退出或入编的Datanode的集合。

-refreshUserToGroupsMappings 刷新用户到组的映射。

-refreshSuperUserGroupsConfiguration 刷新用户组的配置

-refreshAdminAcls 刷新ResourceManager的ACL管理

-refreshServiceAclResourceManager 重载服务级别的授权文件。

-getGroups [username] 获取指定用户所属的组。

-transitionToActive [–forceactive] [–forcemanual] 尝试将目标服务转为 Active 状态。如果使用了–forceactive选项,不需要核对非Active节点。如果采用了自动故障转移,这个命令不能使用。虽然你可以重写–forcemanual选项,你需要谨慎。

-transitionToStandby [–forcemanual] 将服务转为 Standby 状态. 如果采用了自动故障转移,这个命令不能使用。虽然你可以重写–forcemanual选项,你需要谨慎。

-failover [–forceactive] 启动从serviceId1 到 serviceId2的故障转移。如果使用了-forceactive选项,即使服务没有准备,也会尝试故障转移到目标服务。如果采用了自动故障转移,这个命令不能使用。

-getServiceState 返回服务的状态。(注:ResourceManager不是HA的时候,时不能运行该命令的)

-checkHealth 请求服务器执行健康检查,如果检查失败,RMAdmin将用一个非零标示退出。(注:ResourceManager不是HA的时候,时不能运行该命令的)

-help [cmd]显示指定命令的帮助,如果没有指定,则显示命令的帮助。

==========================================

yarn application

1、-list          列出所有 application 信息

    示例:yarn  application -list

2、-appStates <States>          跟 -list 一起使用,用来筛选不同状态的 application,多个用","分隔;

                             所有状态:ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED

    示例:yarn  application -list -appStates RUNNING

3、-appTypes <Types>            跟 -list 一起使用,用来筛选不同类型的 application,多个用","分隔;

                             如 MAPREDUCE

    示例:yarn  application -list -appTypes MAPREDUCE

4、-kill <Application ID>          杀死一个 application,需要指定一个 Application ID

    示例:yarn  application -kill application_name

5、-status <Application ID>        列出 某个application 的状态

    示例:yarn  application -status application_name

6、-movetoqueue <Application ID>   移动 application 到其他的 queue,不能单独使用

7、-queue <Queue Name>                 与 movetoqueue 命令一起使用,指定移动到哪个 queue

     示例:yarn  application -movetoqueue application_name  -queue other

YARN详解(YARN架构设计常用命令三种调度器)

YARN架构设计也是主从架构,分为Resource Mananger(RM)和Node Manager(NM),其中RM主要负责应用管理和资源调度,NM主要负责容器和作业。

一、YARN架构介绍


YARN架构图如上图所示,详细介绍如下:

  • ResourceManager(RM):负责对各NM上的资源进行统一管理和调度,将AM分配空闲的Container运行并监控其运行状态。对AM申请的资源请求分配相应的空闲Container。主要由两个组件构成:调度器(Scheduler)和应用程序管理器(Applications Manager)

  • 调度器(Scheduler):调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。调度器仅根据各个应用程序的资源需求进行资源分配,而资源分配单位是Container,从而限定每个任务使用的资源量。Scheduler不负责监控或者跟踪应用程序的状态,也不负责任务因为各种原因而需要的重启(由ApplicationMaster负责)。总之,调度器根据应用程序的资源要求,以及集群机器的资源情况,为用程序分配封装在Container中的资源。调度器是可插拔的,例如CapacityScheduler、FairScheduler。(PS:在实际应用中,只需要简单配置即可)

  • 应用程序管理器(Application Manager):应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动AM、监控AM运行状态并在失败时重新启动等,跟踪分给的Container的进度、状态也是其职责。

  • NodeManager(NM):NM是每个节点上的资源和任务管理器。它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;同时会接收并处理来自AM的Container 启动/停止等请求。

  • ApplicationMaster(AM):用户提交的应用程序均包含一个AM,负责应用的监控,跟踪应用执行状态,重启失败任务等。ApplicationMaster是应用框架,它负责向ResourceManager协调资源,并且与NodeManager协同工作完成Task的执行和监控。MapReduce就是原生支持的一种框架,可以在YARN上运行Mapreduce作业。有很多分布式应用都开发了对应的应用程序框架,用于在YARN上运行任务,例如Spark,Storm等。如果需要,我们也可以自己写一个符合规范的YARN application。

  • Container:是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container 表示的。 YARN会为每个任务分配一个Container且该任务只能使用该Container中描述的资源。(详细介绍可参考小编博客:Container容器详解)


二、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释放资源


以上是关于yarn常用命令的主要内容,如果未能解决你的问题,请参考以下文章

yarn常用命令

yarn的安装和常用命令

text yarn npm常用命令

yarn常用命令

YARN 查看/停止 application 状态 常用命令

npm与yarn常用命令对比