Table of Contents
概述
yarn 命令由 bin/yarn 脚本调用。运行不带任何参数的 yarn 脚本将打印所有命令的描述。
Usage: yarn [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [SUB_COMMAND] [COMMAND_OPTIONS]
yarn 有一个选项解析框架,它使用解析泛型选项和运行类。
| COMMAND_OPTIONS | Description |
|---|---|
| SHELL_OPTIONS | 一组常见的shell选项。这些都记录在命令手册页上。 |
| GENERIC_OPTIONS | 多个命令支持的常见选项集。有关更多信息,请参阅Hadoop命令手册。 |
| COMMAND COMMAND_OPTIONS | 下面几节将介绍各种命令及其选项。命令被分组为用户命令和管理命令。 |
用户命令
对 Hadoop 集群的用户有用的命令。
application or app
用法:yarn application [options] Usage: yarn app [options]
| COMMAND_OPTIONS | Description |
|---|---|
| -appId <ApplicationId> | 指定要操作的应用程序 Id |
| -appStates <States> | 使用 -list 根据输入逗号分隔的应用程序状态列表过滤应用程序。有效的应用程序状态可以是以下状态之一:ALL、NEW、NEW_SAVING、submit、accept、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> | 为应用程序/长时间运行的服务退役组件实例。需要实例的选择。支持 -appTypes 选项指定要使用的客户端实现。 |
| -destroy <Application Name> | 销毁已保存的应用程序规范并永久删除所有应用程序数据。支持 -appTypes 选项指定要使用的客户端实现。 |
| -enableFastLaunch | 上传对 HDFS 的依赖,使未来的启动更快。支持 -appTypes 选项指定要使用的客户端实现。 |
| -flex <Application Name or ID> | 更改应用程序/长时间运行的服务的组件的运行容器的数量。需要分的选择。如果提供了名称,则必须提供 appType,除非它是默认的 yarn-service。如果提供了 ID,将查找 appType。支持 -appTypes 选项指定要使用的客户端实现。 |
| -help | 显示所有命令的帮助。 |
| -instances <Component Instances> | 使用 -upgrade 选项触发应用程序指定组件实例的升级。还可以使用 -decommission 选项来退役指定的组件实例。多个实例之间应该用逗号分隔。 |
| -kill <Application ID> | 杀死该应用程序。可以提供与空间分隔的应用程序集 |
| -launch <Application Name> <File Name> | 从规范文件启动应用程序(保存规范并启动应用程序)。可以指定选项 -updateLifetime 和 -changeQueue 来更改文件中提供的值。支持 -appTypes 选项指定要使用的客户端实现。 |
| -list | 应用程序列表。支持可选使用 - apptype 来过滤基于应用程序类型的应用程序,- appstate 来过滤基于应用程序状态的应用程序,-appTags 来过滤基于应用程序标签的应用程序。 |
| -movetoqueue <Application ID> | 将应用程序移动到另一个队列。弃用的命令。使用“changeQueue”代替。 |
| -queue <Queue Name> | 使用 movetoqueue 命令指定要将应用程序移动到哪个队列。 |
| -save <Application Name> <File Name> | 保存应用程序的规范文件。可以指定选项 -updateLifetime 和 -changeQueue 来更改文件中提供的值。支持 -appTypes 选项指定要使用的客户端实现。 |
| -start <Application Name> | 启动先前保存的应用程序。支持 -appTypes 选项指定要使用的客户端实现。 |
| -status <ApplicationId or ApplicationName> | 打印应用程序的状态。如果提供了app ID,则打印通用 yarn 应用状态。如果提供了名称,它将根据应用程序自己的实现打印应用程序特定的状态,并且必须指定 -appTypes 选项,除非它是默认的 yarn-service 类型。 |
| -stop <Application Name or ID> | 优雅地停止应用程序(可能稍后再次启动)。如果提供了名称,则必须提供 appType,除非它是默认的 yarn-service。如果提供了ID,将查找 appType。支持 -appTypes 选项指定要使用的客户端实现。 |
| -updateLifetime <Timeout> | 从现在开始更新应用程序的超时。可以使用“appId”选项传递 ApplicationId。超时值的单位是秒。 |
| -updatePriority <Priority> | 应用程序的更新优先级。可以使用“appId”选项传递 ApplicationId。 |
打印应用程序报告/杀死应用程序/管理长时间运行的应用程序
applicationattempt
用法: yarn applicationattempt [options]
| COMMAND_OPTIONS | Description |
|---|---|
| -help | Help |
| -list <ApplicationId> | 列出给定应用程序的应用程序尝试。 |
| -status <Application Attempt Id> | 打印应用程序尝试的状态。 |
prints applicationattempt(s) report
classpath
用法: yarn classpath [--glob |--jar <path> |-h |--help]
| COMMAND_OPTION | Description |
|---|---|
| --glob | 扩大通配符 |
| --jar path | 在 jar 命名路径中编写类路径作为清单 |
| -h, --help | print help |
Prints the class path needed to get the Hadoop jar and the required libraries. If called without arguments, then prints the classpath set up by the command scripts, which is likely to contain wildcards in the classpath entries. Additional options print the classpath after wildcard expansion or write the classpath into the manifest of a jar file. The latter is useful in environments where wildcards cannot be used and the expanded classpath exceeds the maximum supported command line length.
container
用法: yarn container [options]
| COMMAND_OPTIONS | Description |
|---|---|
| -help | Help |
| -list <Application Attempt Id> | 列出应用程序尝试的容器。 |
| -status <ContainerId> | 打印容器的状态。 |
prints container(s) report
jar
用法: yarn jar <jar> [mainClass] args...
运行一个jar文件。用户可以将他们的 yarn 代码捆绑在一个 jar 文件中,并使用这个命令执行它。
logs
用法: yarn logs -applicationId <application ID> [options]
| COMMAND_OPTIONS | Description |
|---|---|
| -applicationId <application ID> | 指定一个应用程序 id |
| -appOwner <AppOwner> | 拥有人(如果未指定,假定为当前用户) |
| -containerId <ContainerId> | ContainerId(如果指定了节点地址,则必须指定) |
| -help | Help |
| -nodeAddress <NodeAddress> | NodeAddress 格式为 nodename:port(如果指定了容器id,必须指定) |
转储容器日志
node
用法: yarn node [options]
| COMMAND_OPTIONS | Description |
|---|---|
| -all | 使用-list列出所有节点。 |
| -list | 列出所有正在运行的节点。支持可选地使用 -states 根据节点状态筛选节点,使用 -all 列出所有节点。 |
| -states <States> | 使用 -list 根据输入逗号分隔的节点状态列表过滤节点。 |
| -status <NodeId> | 打印节点的状态报告。 |
打印 node report(s)
queue
用法: yarn queue [options]
| COMMAND_OPTIONS | Description |
|---|---|
| -help | Help |
| -status <QueueName> | 打印队列的状态。 |
打印 queue information
version
用法: yarn version
打印 Hadoop version.
envvars
用法: yarn envvars
显示计算的 Hadoop 环境变量。
管理员命令s
对 Hadoop 集群的管理员有用的命令。
daemonlog
动态地获取/设置守护进程中由限定类名标识的日志的日志级别。
nodemanager
用法: yarn nodemanager
启动 NodeManager
proxyserver
用法: yarn proxyserver
启动 web proxy server
resourcemanager
用法: yarn resourcemanager [-format-state-store]
| COMMAND_OPTIONS | Description |
|---|---|
| -format-state-store | Formats the RMStateStore. This will clear the RMStateStore and is useful if past applications are no longer needed. This should be run only when the ResourceManager is not running. |
| -remove-application-from-state-store <appId> | Remove the application from RMStateStore. This should be run only when the ResourceManager is not running. |
启动 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>
-failover [--forcefence] [--forceactive] <serviceId> <serviceId>
-getServiceState <serviceId>
-getAllServiceState
-checkHealth <serviceId>
-help [cmd]
| COMMAND_OPTIONS | Description |
|---|---|
| -refreshQueues | 重新加载队列的 acl、状态和调度器特定属性。ResourceManager 将重新加载映射队列配置文件。 |
| -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 的管理acl |
| -refreshServiceAcl | 重新加载服务级授权策略文件 ResourceManager 将重新加载授权策略文件。 |
| -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] | 替换节点上的标签(请注意,我们现在不支持在一台主机上指定多个标签)-failOnUnknownNodes 是可选的,当我们设置这个选项时,如果指定的节点是未知的,它将失败。 |
| -directlyAccessNodeLabelStore | 这是不赞成的,将在以后的版本中删除。直接访问节点标签存储,使用此选项,所有与节点标签相关的操作将不会连接 RM。相反,它们将直接访问/修改存储的节点标签。默认情况下,它是 false(通过RM访问)。请注意:如果您配置了 yarn.node- tags .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 选项,尝试使目标处于活动状态,而不检查是否存在活动节点。如果启用了自动故障转移,则不能使用此命令。虽然你可以通过选择性的选择来覆盖它,但是你需要小心。如果启用了自动故障转移,则不能使用此命令。 |
| -transitionToStandby [–forcemanual] <serviceId> | 将服务转换为备用状态。如果启用了自动故障转移,则不能使用此命令。虽然你可以通过选择性的选择来覆盖它,但是你需要小心。 |
| -failover [–forceactive] <serviceId1> <serviceId2> | 启动从 serviceId1 到 serviceId2 的故障转移。如果使用了 -forceactive 选项,尝试故障转移到目标服务,即使它还没有准备好。如果启用了自动故障转移,则不能使用此命令。 |
| -getServiceState <serviceId> | 返回服务的状态。 |
| -getAllServiceState | 返回所有服务的状态。 |
| -checkHealth <serviceId> | 请求服务执行运行状况检查。如果检查失败,RMAdmin工具将使用非零退出代码退出。 |
| -help [cmd] | Displays help for the given command or all commands if none is specified. |
运行 ResourceManager admin client
schedulerconf
用法: yarn schedulerconf [options]
| COMMAND_OPTIONS | Description |
|---|---|
| -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 [options]
| COMMAND_OPTIONS | Description |
|---|---|
| -help | Help |
| -runCleanerTask | 运行清洁器任务 |
运行 Shared Cache Manager admin client
sharedcachemanager
用法: yarn sharedcachemanager
启动 Shared Cache Manager
timelineserver
用法: yarn timelineserver
启动 TimeLineServer
registrydns
用法: yarn registrydns
启动 RegistryDNS 服务
Files
| File | Description |
|---|---|
| etc/hadoop/hadoop-env.sh | 该文件存储所有Hadoop shell命令使用的全局设置。 |
| etc/hadoop/yarn-env.sh | 此文件存储所有 yarn shell 命令使用的覆盖。 |
| etc/hadoop/hadoop-user-functions.sh | 这个文件允许高级用户覆盖一些 shell 功能。 |
| ~/.hadooprc | 它存储单个用户的个人环境。它是在 hadoop-env 之后处理的。sh, hadoop-user-functions。和yarn-env.sh文件,并且可以包含相同的设置。functions.sh, and yarn-env.sh files and can contain the same settings. |
示例
# YARN 杀死 APP
yarn app -kill appId
# 列出不健康的 nodemanager
yarn node -list -states UNHEALTHY
# 列出丢失心跳的 nodemanager
yarn node -list -all|grep LOST
# 实时查看yan 整体运行情况
yarn top
# 查看哪个 rm 处于 active 的状态
yarn rmadmin -getAllServiceState
本文详细介绍了YARN(Yet Another Resource Negotiator)中的用户命令和管理员命令,包括application、app、applicationattempt、classpath、container等用户命令,以及daemonlog、nodemanager、proxyserver等管理员命令。同时,文章还解释了如何使用这些命令进行资源管理和应用程序控制。
692

被折叠的 条评论
为什么被折叠?



