35、Hadoop 教程 - Hadoop YARN常用命令操作详解

1. 用户命令

用户命令主要包括对ApplicationApplicationAttemptClasspathContainerJarLogsNodeQueueVersion的使用。

1.1 application

使用方式:

yarn application [options]

  • 查看帮助
yarn application --help

 

  • 查看所有的Application
    仅显示状态为 SUBMITTED、ACCEPTED、RUNNING 应用。
yarn application -list

  • 杀死某一个Application
yarn application -kill application_1573364048641_0004

  • 查看某一个Application的统计报告
yarn application -status application_1614179148030_0001

  • 查看状态为ALL的Application列表
yarn application -list -appStates ALL

  • 查看类型为MAPREDUCE的Application列表
yarn application -list -appTypes MAPREDUCE

  • 移动一个Application到default队列
    注意: 如果使用 FairScheduler 时,使用此命令移动应用程序从 A 队列到 B 队列时,出于公平考虑,它在 A 队列所分配的资源会在 B 队列中重新资源分配。如果加入被移动的应用程序的资源超出 B 队列的 maxRunningApps 或者 maxResources 限制,会导致移动失败。
yarn application -movetoqueue application_1573364048641_0004 -queue default

  • 修改一个Application的优先级
    注: 整数值越高则优先级越高
yarn application -updatePriority 0 -appId application_1573364048641_0006

1.2 jar

使用方式:

yarn jar x.jar [mainClass] args...

使用 yarn jar 提交运行 MapReduce 应用,命令如下所示:

yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output

1.3 applicationattempt

使用方式:

yarn applicationattempt [options]

  • 查看帮助
yarn applicationattempt -help

 

  • 标记applicationattempt失败
yarn applicationattempt -fail appattempt_1573364048641_0004_000001

  • 查看某个应用所有的attempt
yarn applicationattempt -list application_1614179148030_0001

  • 查看具体某一个applicationattemp的报告
yarn applicationattempt -status appattempt_1614179148030_0001_000001

1.4 container

使用方式:

yarn container [options]

  • 查看帮助
yarn container -help

 

  • 查看某一个applicationattempt下所有的container
    注: 应用在 YARN 时,才能够查看出 Contanier 容器信息。
yarn container -list appattempt_1614179148030_0001_000001

1.5 logs

使用方式:

yarn logs -applicationId <application ID> [options]

  • 查看帮助
yarn logs -help

 

  • 查看应用程序所有的logs
yarn logs -applicationId application_1614179148030_0001

-查看应用程序某个container运行所在节点的log

yarn logs -applicationId application_1614179148030_0001 -containerId container_e01_1614179148030_0001_01_000001

1.6 classpath

获取 yarn 的类路径,执行命令,显示如下结果:

[hadoop@hadoop1 hadoop-3.3.1]$ yarn classpath
/data/hadoop-3.3.1/etc/hadoop:/data/hadoop-3.3.1/share/hadoop/common/lib/*:/data/hadoop-3.3.1/share/hadoop/common/*:/data/hadoop-3.3.1/share/hadoop/hdfs:/data/hadoop-3.3.1/share/hadoop/hdfs/lib/*:/data/hadoop-3.3.1/share/hadoop/hdfs/*:/data/hadoop-3.3.1/share/hadoop/mapreduce/*:/data/hadoop-3.3.1/share/hadoop/yarn:/data/hadoop-3.3.1/share/hadoop/yarn/lib/*:/data/hadoop-3.3.1/share/hadoop/yarn/*

1.7 queue

使用方式:

yarn queue [options]

  • 查看帮助
yarn queue -help

 

1.8 node

使用方式:

yarn node [options]

  • 查看帮助
yarn node -help

 
-查看yarn所有从节点

yarn node -list -all

 
-查看yarn所有节点的详情

yarn node -list -showDetails

 

  • 查看yarn所有正在运行的节点
yarn node -list -states RUNNING

 

  • 查看yarn某一个节点的报告
yarn node -status hadoop1:45046

 

1.9 version

使用方式:

yarn version

 

2. 管理命令

对于 Hadoop 集群的管理员使用的相关命令,主要包括daemonlognodemanagerproxymanagerresourcemanagerrmadminscmadminsharedcachemanagertimelineserver命令。

2.1 resourcemanager

  • 使用方式:
yarn resourcemanager [options]

  • 启动某个节点的resourcemanager
yarn resourcemanager 

  • 格式化resourcemanager的RMStateStore
    清除 RMStateStore,如果不再需要以前的应用程序,则将非常有用。只有在 ResourceManager 没有运行时才能使用此命令。
yarn resourcemanager -format-state-store

  • 删除RMStateStore中的Application
    从 RMStateStore 删除该应用程序,只有在 ResourceManager 没有运行时才能使用此命令。
yarn resourcemanager -remove-application-from-state-store <appId> 

2.2 nodemanager

  • 启动某个节点的nodemanager
yarn nodemanager

2.3 proxyserver

  • 启动某个节点的proxyserver
yarn proxyserver

如果启动 YARN ProxyServer 服务,需要在yarn-site.xml文件中配置如下属性:

<property>
	<name>yarn.web-proxy.address</name>
	<value>hadoop3:8089</value>
</property>

2.4 daemonlog

使用方式:

yarn daemonlog -getlevel <host:httpport> <classname>
yarn daemonlog -setlevel <host:httpport> <classname> <level>

  • 查看帮助
yarn daemonlog

 

  • 查看RMAppImpl的日志级别
yarn daemonlog -getlevel hadoop2:8088 org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl 

 

  • 设置RMAppImpl的日志级别
yarn daemonlog -setlevel hadoop2:8088 org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl DEBUG

 

2.5 rmadmin

使用方式:

yarn rmadmin [options]

  • 查看帮助
yarn rmadmin

 

  • 重新加载mapred-queues配置文件
    重新加载队列的 ACL,状态和调度程序特定的属性,ResourceManager 将重新加载 mapred-queues 配置文件。
yarn rmadmin -refreshQueues

  • 刷新ResourceManager的主机信息
yarn rmadmin -refreshNodes

  • 在ResourceManager上刷新NodeManager的资源
yarn rmadmin -refreshNodesResources

  • 刷新超级用户代理组映射
yarn rmadmin -refreshSuperUserGroupsConfiguration

  • 刷新ACL以管理ResourceManager
yarn rmadmin -refreshAdminAcls

  • 获取ResourceManager服务的Active/Standby状态

  • 获取所有RM状态

yarn rmadmin -getAllServiceState

  • 获取rm1的状态
yarn rmadmin -getServiceState rm1

  • 获取rm2的状态
yarn rmadmin -getServiceState rm2

  • ResourceManager服务执行健康检查
    请求 ResourceManager 服务执行健康检查,如果检查失败,RMAdmin 工具将使用非零退出码退出。
yarn rmadmin -checkHealth rm1
yarn rmadmin -checkHealth rm2

2.6 timelineserver

  • 启动TimelineServer服务
    启动完成以后,提供 WEB UI 端口号:8188,访问地址:http://hadoop2:8188
yarn-daemon.sh start timelineserver

2.7 scmadmin

scmadmin 是 ShareCacheManager(共享缓存管理)的管理客户端,使用方式:

yarn scmadmin [options]

  • 查看帮助
yarn scmadmin

  • 执行清理任务
yarn scmadmin -runCleanerTask

先启动 SCM 服务(SharedCacheManager服务)

yarn-daemon.sh start sharedcachemanager