YARN 命令

概述

YARN 命令由 bin/yarn 脚本调用。在没有任何参数的情况下运行 yarn 脚本将打印所有命令的描述。

用法:yarn [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [SUB_COMMAND] [COMMAND_OPTIONS]

YARN 有一个选项解析框架,用于解析通用选项以及运行类。

COMMAND_OPTIONS 描述
SHELL_OPTIONS 一组通用的 shell 选项。这些选项在 命令手册 页面中有记录。
GENERIC_OPTIONS 多个命令支持的一组通用选项。有关更多信息,请参阅 Hadoop 命令手册
COMMAND COMMAND_OPTIONS 以下部分中介绍了各种命令及其选项。这些命令已分组为用户命令管理命令

用户命令

Hadoop 集群用户可用的命令。

applicationapp

用法:yarn application [options] 用法:yarn app [options]

COMMAND_OPTIONS 描述
-appId <ApplicationId> 指定要操作的应用程序 ID
-appStates <States> 与 -list 结合使用,根据输入的应用程序状态以逗号分隔的列表筛选应用程序。有效的应用程序状态可以是以下状态之一: ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED
-appTags <Tags> 与 -list 结合使用,根据输入的应用程序标签以逗号分隔的列表筛选应用程序。
-appTypes <Types> 与 -list 结合使用,根据输入的应用程序类型以逗号分隔的列表筛选应用程序。
-changeQueue <Queue Name> 将应用程序移动到新队列。可以使用“appId”选项传递 ApplicationId。“movetoqueue”命令已弃用,此新命令“changeQueue”执行相同的功能。
-component <Component Name> <Count> 与 -flex 选项结合使用,以更改应用程序/长期运行服务运行的组件/容器数量。支持绝对或相对更改,例如 +1、2 或 -3。
-components <Components> 与 -upgrade 选项结合使用,以触发升级应用程序的指定组件。多个组件应以逗号分隔。
-decommission <Application Name> 为应用程序/长期运行服务注销组件实例。需要 -instances 选项。支持 -appTypes 选项以指定要使用的客户端实现。请确保与 appType 对应的框架已提供了适当的客户端实现来处理此特定功能。
-destroy <Application Name> 销毁已保存的应用程序规范并永久删除所有应用程序数据。支持 -appTypes 选项以指定要使用的客户端实现。请确保 appType 对应的框架已提供了适当的客户端实现来处理此特定功能。
-enableFastLaunch 将 AM 依赖项上传到 HDFS 以加快将来的启动速度。支持 -appTypes 选项以指定要使用的客户端实现。请确保 appType 对应的框架已提供了适当的客户端实现来处理此特定功能。
-flex <应用程序名称或 ID> 更改应用程序/长期运行服务的组件的正在运行的容器数。需要 -component 选项。如果提供了名称,则必须提供 appType,除非它是默认的 yarn-service。如果提供了 ID,则将查找 appType。支持 -appTypes 选项以指定要使用的客户端实现。请确保 appType 对应的框架已提供了适当的客户端实现来处理此特定功能。
-help 显示所有命令的帮助。
-instances <组件实例> 与 -upgrade 选项配合使用以触发应用程序指定组件实例的升级。还可与 -decommission 选项配合使用以停用指定的组件实例。多个实例应以逗号分隔。
-kill <应用程序 ID> 终止应用程序。可提供以空格分隔的应用程序集
-launch <应用程序名称> <文件名> 从规范文件启动应用程序(保存规范并启动应用程序)。可指定 -updateLifetime 和 -changeQueue 选项来更改文件中提供的值。支持 -appTypes 选项以指定要使用的客户端实现。请确保 appType 对应的框架已提供了适当的客户端实现来处理此特定功能。
-list 列出应用程序。支持根据应用程序类型使用 -appTypes(可选)来筛选应用程序,根据应用程序状态使用 -appStates 来筛选应用程序,根据应用程序标签使用 -appTags 来筛选应用程序。
-movetoqueue <应用程序 ID> 将应用程序移至不同的队列。已弃用的命令。改为使用“changeQueue”。
-queue <队列名称> 与 movetoqueue 命令配合使用,指定将应用程序移至哪个队列。
-save <应用程序名称> <文件名> 保存应用程序规范文件。可以指定 -updateLifetime 和 -changeQueue 选项来更改文件中提供的值。支持 -appTypes 选项以指定要使用的客户端实现。请确保与 appType 对应的框架提供了适当的客户端实现来处理此特定功能。
-start <应用程序名称> 启动先前保存的应用程序。支持 -appTypes 选项以指定要使用的客户端实现。请确保与 appType 对应的框架提供了适当的客户端实现来处理此特定功能。
-status <应用程序 ID 或应用程序名称> 打印应用程序状态。如果提供了应用程序 ID,它将打印通用 YARN 应用程序状态。如果提供了名称,它将根据应用程序自己的实现打印特定于应用程序的状态,并且必须指定 -appTypes 选项,除非它是默认的 yarn-service 类型。请确保与 appType 对应的框架提供了适当的客户端实现来处理此特定功能。
-stop <应用程序名称或 ID> 正常停止应用程序(稍后可以再次启动)。如果提供了名称,则必须提供 appType,除非它是默认的 yarn-service。如果提供了 ID,将查找 appType。支持 -appTypes 选项以指定要使用的客户端实现。请确保与 appType 对应的框架提供了适当的客户端实现来处理此特定功能。
-updateLifetime <超时> 从现在开始更新应用程序的超时。可以使用“appId”选项传递 ApplicationId。超时值为秒。
-updatePriority <优先级> 更新应用程序的优先级。可以使用“appId”选项传递 ApplicationId。

打印应用程序报告/终止应用程序/管理长期运行的应用程序

applicationattempt

用法:yarn applicationattempt [选项]

COMMAND_OPTIONS 描述
-help 帮助
-list <应用程序 ID> 列出给定应用程序的应用程序尝试。
-status <应用程序尝试 ID> 打印应用程序尝试的状态。

打印 applicationattempt(s) 报告

classpath

用法:yarn classpath [--glob |--jar <路径> |-h |--help]

COMMAND_OPTION 描述
--glob 展开通配符
--jar 路径 将类路径作为清单写入名为 路径 的 jar 中
-h, --help 打印帮助

打印获取 Hadoop jar 和所需库所需的类路径。如果在没有参数的情况下调用,则打印由命令脚本设置的类路径,该类路径可能包含类路径条目中的通配符。其他选项会在通配符扩展后打印类路径或将类路径写入 jar 文件的清单中。后者在无法使用通配符并且扩展的类路径超过最大支持的命令行长度的环境中很有用。

container

用法:yarn container [options]

COMMAND_OPTIONS 描述
-help 帮助
-list <Application Attempt Id> 列出应用程序尝试的容器。
-status <ContainerId> 打印容器的状态。

打印容器报告

jar

用法:yarn jar <jar> [mainClass] args...

运行 jar 文件。用户可以将他们的 YARN 代码打包到 jar 文件中,并使用此命令执行它。

logs

用法:yarn logs -applicationId <application ID> [options]

COMMAND_OPTIONS 描述
-applicationId <application ID> 指定应用程序 ID
-appOwner <AppOwner> AppOwner(如果未指定,则假定为当前用户)
-containerId <ContainerId> ContainerId(如果指定了节点地址,则必须指定)
-help 帮助
-nodeAddress <NodeAddress> 格式为 nodename:port 的 NodeAddress(如果指定了容器 ID,则必须指定)

转储容器日志

node

用法:yarn node [options]

COMMAND_OPTIONS 描述
-all 与 -list 配合使用,列出所有节点。
-list 列出所有正在运行的节点。支持根据节点状态使用 -states 筛选节点,以及使用 -all 列出所有节点。
-states <States> 与 -list 配合使用,根据输入的以逗号分隔的节点状态列表筛选节点。
-status <NodeId> 打印节点的状态报告。

打印节点报告

queue

用法:yarn queue [options]

COMMAND_OPTIONS 描述
-help 帮助
-status <QueueName> 打印队列的状态。

打印队列信息

version

用法:yarn version

打印 Hadoop 版本。

envvars

用法:yarn envvars

显示计算出的 Hadoop 环境变量。

管理命令

Hadoop 集群管理员可用的命令。

daemonlog

动态获取/设置守护进程中由限定类名标识的日志的日志级别。有关详细信息,请参阅 Hadoop 命令手册

nodemanager

用法:yarn nodemanager

启动 NodeManager

proxyserver

用法:yarn proxyserver

启动 Web 代理服务器

resourcemanager

用法:yarn resourcemanager [-format-state-store]

COMMAND_OPTIONS 描述
-format-state-store 格式化 RMStateStore。这将清除 RMStateStore,如果不再需要过去的应用程序,这将很有用。仅当 ResourceManager 未运行时才应运行此命令。
-remove-application-from-state-store <appId> 从 RMStateStore 中移除应用程序。仅当 ResourceManager 未运行时才应运行此命令。
-format-conf-store 格式化 YarnConfigurationStore。这将清除 YarnConfigurationStore 下的持久化调度程序配置。仅当 ResourceManager 未运行时才应运行此命令。
-convert-fs-configuration [-y|yarnsiteconfig] [-f|fsconfig] [-r|rulesconfig] [-o|output-directory] [-p|print] [-c|cluster-resource] 警告:此功能仍处于实验阶段,不适用于生产环境!开发仍在进行中,因此不应认为转换器已完成!

将指定的 Fair 调度程序配置转换为 Capacity 调度程序配置。需要两个强制输入文件。首先,yarn-site.xml 具有以下格式:[-y|yarnsiteconfig [<Path to the yarn-site.xml file>]。其次,fair-scheduler.xml 具有以下格式:[-f|fsconfig [<Path to the fair-scheduler.xml file>]。如果 yarn-site.xml 中引用了具有属性“yarn.scheduler.fair.allocation.file”的 fair-scheduler.xml,则此配置不是强制性的。如果两者都已定义,则 -f 选项具有优先权。还应指定配置文件的输出目录,格式为:[-o|output-directory\ <directory>]。还可以指定一个可选的规则配置文件,格式如下:[-r|rulesconfig <Path to the conversion rules file>]。规则配置文件的格式是属性文件。还有一个附加的 [-p|print] 参数,它是可选的。如果已定义,则配置将被发送到控制台。在其正常操作中,此命令的输出文件(yarn-site.xml 和 capacity-scheduler.xml)将生成到指定的输出目录。如果任何队列的最大资源设置的值为百分比,则需要指定群集资源参数([-c|cluster-resource] <resource>])。资源字符串的格式与 fair-scheduler.xml 中的格式相同。)

启动 ResourceManager

rmadmin

用法

  Usage: yarn rmadmin
     -refreshQueues
     -refreshNodes [-g|graceful [timeout in seconds] -client|server]
     -refreshNodesResources
     -refreshSuperUserGroupsConfiguration
     -refreshUserToGroupsMappings
     -refreshAdminAcls
     -refreshServiceAcl
     -getGroups [username]
     -addToClusterNodeLabels <"label1(exclusive=true),label2(exclusive=false),label3">
     -removeFromClusterNodeLabels <label1,label2,label3> (label splitted by ",")
     -replaceLabelsOnNode <"node1[:port]=label1,label2 node2[:port]=label1,label2"> [-failOnUnknownNodes]
     -directlyAccessNodeLabelStore
     -refreshClusterMaxPriority
     -updateNodeResource [NodeID] [MemSize] [vCores] ([OvercommitTimeout]) or -updateNodeResource [NodeID] [ResourceTypes] ([OvercommitTimeout])
     -transitionToActive [--forceactive] <serviceId>
     -transitionToStandby <serviceId>
     -getServiceState <serviceId>
     -getAllServiceState
     -checkHealth <serviceId>
     -help [cmd]
COMMAND_OPTIONS 描述
-refreshQueues 重新加载队列的 acls、状态和调度程序特定属性。ResourceManager 将重新加载 mapred-queues 配置文件。
-refreshNodes [-g|graceful [timeout in seconds] -client|server] 刷新 ResourceManager 中的主机信息。此处 [-g|graceful [timeout in seconds] -client|server] 是可选的,如果我们指定超时,则 ResourceManager 将在将 NodeManager 标记为已停用之前等待超时。-client|server 指示超时跟踪应由客户端还是 ResourceManager 处理。客户端跟踪是阻塞的,而服务器端跟踪不是。省略超时或超时为 -1 表示无限超时。已知问题:如果发生 RM HA 故障转移,服务器端跟踪将立即停用。
-refreshNodesResources 刷新 ResourceManager 中 NodeManager 的资源。
-refreshSuperUserGroupsConfiguration 刷新超级用户代理组映射。
-refreshUserToGroupsMappings 刷新用户到组的映射。
-refreshAdminAcls 刷新 ResourceManager 管理的 acls
-refreshServiceAcl 重新加载服务级别授权策略文件 ResourceManager 将重新加载授权策略文件。
-getGroups [username] 获取指定用户所属的组。
-addToClusterNodeLabels <“label1(exclusive=true),label2(exclusive=false),label3”> 添加到集群节点标签。默认排他性为 true。
-removeFromClusterNodeLabels <label1,label2,label3>(标签以“,”分隔) 从集群节点标签中移除。
-replaceLabelsOnNode <“node1[:port]=label1,label2 node2[:port]=label1,label2”> [-failOnUnknownNodes] 替换节点上的标签(请注意,我们目前不支持在单个主机上指定多个标签。)-failOnUnknownNodes 是可选的,当我们设置此选项时,如果指定的节点未知,它将失败。
-directlyAccessNodeLabelStore 此选项已弃用,将在未来版本中删除。直接访问节点标签存储,使用此选项,所有与节点标签相关的操作将不会连接 RM。相反,它们将直接访问/修改存储的节点标签。默认情况下,它是 false(通过 RM 访问)。请注意:如果您将 yarn.node-labels.fs-store.root-dir 配置为本地目录(而不是 NFS 或 HDFS),则此选项仅在命令在运行 RM 的机器上运行时才有效。
-refreshClusterMaxPriority 刷新集群最大优先级
-updateNodeResource [NodeID] [MemSize] [vCores] ([OvercommitTimeout]) 更新特定节点上的资源。
-updateNodeResource [NodeID] [ResourceTypes] ([OvercommitTimeout]) 更新特定节点上的资源类型。资源类型是资源管理器中可用的任何资源的逗号分隔键值对。例如,memory-mb=1024Mi,vcores=1,resource1=2G,resource2=4m
-transitionToActive [–forceactive] [–forcemanual] <serviceId> 将服务转换为活动状态。如果使用 –forceactive 选项,请尝试使目标处于活动状态,而无需检查是否没有活动节点。如果启用了自动故障转移,则无法使用此命令。虽然您可以通过 –forcemanual 选项覆盖此选项,但您需要小心。如果启用了自动故障转移,则无法使用此命令。
-transitionToStandby [–forcemanual] <serviceId> 将服务转换为备用状态。如果启用了自动故障转移,则无法使用此命令。虽然您可以通过 –forcemanual 选项覆盖此选项,但您需要小心。
-getServiceState <serviceId> 返回服务的状态。
-getAllServiceState 返回所有服务的状态。
-checkHealth <serviceId> 请求服务执行健康检查。如果检查失败,RMAdmin 工具将退出,并显示非零退出代码。
-help [cmd] 显示给定命令的帮助,如果没有指定命令,则显示所有命令的帮助。

运行 ResourceManager 管理客户端

schedulerconf

用法:yarn schedulerconf [选项]

COMMAND_OPTIONS 描述
-add <“queuePath1:key1=val1,key2=val2;queuePath2:key3=val3”> 要添加的队列及其队列配置的分号分隔值。此示例添加队列“queuePath1”(一个完整路径名),其队列配置为 key1=val1 和 key2=val2。它还添加了队列“queuePath2”,其队列配置为 key3=val3。
-remove <“queuePath1;queuePath2”> 要移除的分号分隔队列。此示例移除 queuePath1 和 queuePath2 队列(完整路径名)。注意:队列必须先置于已停止状态,然后才能删除。
-update <“queuePath1:key1=val1,key2=val2;queuePath2:key3=val3”> 要更新其配置的分号分隔队列值。此示例为 queuePath1(完整路径名)的队列配置设置 key1=val1 和 key2=val2,并为 queuePath2 的队列配置设置 key3=val3。
-global <key1=val1,key2=val2> 更新调度程序全局配置。此示例为调度程序的全局配置设置 key1=val1 和 key2=val2。

更新调度程序配置。注意,此功能处于 alpha 阶段,可能会发生更改。

scmadmin

用法:yarn scmadmin [选项]

COMMAND_OPTIONS 描述
-help 帮助
-runCleanerTask 运行清理任务

运行共享缓存管理器管理客户端

sharedcachemanager

用法:yarn sharedcachemanager

启动共享缓存管理器

timelineserver

用法:yarn timelineserver

启动 TimeLineServer

registrydns

用法:yarn registrydns

启动 RegistryDNS 服务器

文件

文件 描述
etc/hadoop/hadoop-env.sh 此文件存储所有 Hadoop shell 命令使用的全局设置。
etc/hadoop/yarn-env.sh 此文件存储所有 YARN shell 命令使用的覆盖。
etc/hadoop/hadoop-user-functions.sh 此文件允许高级用户覆盖某些 shell 功能。
~/.hadooprc 此文件存储单个用户的个人环境。它在处理 hadoop-env.shhadoop-user-functions.shyarn-env.sh 文件后处理,并且可以包含相同的设置。