概述
yarn命令是调用的bin/yarn脚本。执行yarn命令时如果不带上参数信息则会打印yarn命令的帮助信息。
yarn命令的用法:
1 |
yarn [--config confdir] [COMMAND | CLASSNAME] |
yarn有一个命令参数解析框架,可以用来解析通用命令参数以及运行类。命令参数及描述如下表:
–config confdir | 覆盖默认配置目录,默认配置目录为: ${HADOOP_PREFIX}/conf。 |
–loglevel loglevel | 覆盖默认日志级别,可选的日志级别为:FATAL,ERROR,WARN,INFO,DEBUG,以及TRACE,默认日志级别为INFO。 |
GENERIC_OPTIONS(通用命令参数) | 一套在多种命令里面都可能会用到参数项,具体见通用命令项表 |
COMMAND COMMAND_OPTIONS | 各种命令以及其参数,接下来主要讲述的内容。大致可以分为普通用户命令和系统管理员命令两大类。 |
通用项列表:
命令选项 | 描述 |
-archives <comma separated list of archives> | 用逗号分隔计算中未归档的文件,仅仅针对job |
-conf <configuration file> | 制定应用程序的配置文件 |
-D <property>=<value> | 使用给定的属性值 |
-files <comma separated list of files> | 用逗号分隔的文件,拷贝到Map reduce机器,仅仅针对job |
-jt <local> or <resourcemanager:port> | 指定一个ResourceManager,仅仅针对job |
-libjars <comma seperated list of jars> | 将用逗号分隔的jar路径包含到classpath中去,仅仅针对job |
用户命令
主要是Hadoop集群普通用户常用的命令
application
主要用来打印应用信息、杀死应用进程。
用法:
1 |
yarn application [options] |
参数项详情:
-appId <ApplicationId> | 指定要操作的应用ID |
-appStates <States> | 和-list命令一起使用,基于应用状态来过滤应用。多个状态用逗号分隔。可用状态为:ALL, NEW, NEW_SAVING, SUBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED |
-appTypes <Types> | 使用-list命令,基于应用类型来过滤应用,如果应用类型有多个,用逗号分隔 |
-list | 列出从RM返回的应用程序,使用-appTypes参数实现基于应用类型的过滤,使用-appStates参数使用基于应用状态的过滤 |
-kill <ApplicationId> | kill指定的应用程序 |
-status <ApplicationId> | 打印应用程序的状态 |
-updatePriority <Priority> | 更新应用优先级,可以使用“appId”指定应用ID |
applicationattempt
打印application attempt的报告。
用法:
1 |
yarn applicationattempt [options] |
参数项详情:
-help | 帮助 |
-list <ApplicationId> | 打印指定应用的application attempt列表 |
-status <Application Attempt Id> | 打印application attempt的状态 |
classpath
打印获取Hadoop相关的jar以及其他必需的库所用的类路径
用法:
1 |
yarn classpath [--glob |--jar <path> |-h |--help] |
container
打印container信息。
用法:
1 |
yarn container [options] |
参数项:
-help | 帮助 |
-list <Application Attempt Id> | 应用程序尝试的Containers列表 |
-status <ContainerId> | 打印Container的状态 |
jar
运行jar文件,用户可以将写好的YARN代码打包成jar文件,用这个命令去运行它。
用法:
1 |
yarn jar <jar> [mainClass] args... |
logs
转存container日志。
用法:
1 |
yarn logs -applicationId <application ID> [options] |
参数项:
-applicationId <application ID> | 指定应用程序ID,应用ID可以在yarn.resourcemanager.webapp.address配置的路径查看(即:ID) |
-appOwner <AppOwner> | 应用的所有者(默认当前用户) |
-containerId <ContainerId> | Container Id |
-help | 帮助 |
-nodeAddress <NodeAddress> | 节点地址,格式:nodename:port (端口是配置文件中:yarn.nodemanager.webapp.address参数指定),如果指定了containerId,就必须指明nodeAddress |
node
打印节点信息。
用法:
1 |
yarn node [options] |
参数项:
-all | 和-list一起使用,列出所有的节点 |
-list | 列出所有RUNNING状态的节点,使用-states选项过滤指定状态的节点,使用-all显示所有的节点 |
-states <States> | 和-list配合使用,过滤指定状态的节点,多个状态以逗号分隔,可用状态为:NEW,RUNNING,UNHEALTHY,DECOMMISSIONED,LOST,REBOOTED |
-status <NodeId> | 打印指定节点的状态 |
queue
打印队列信息。
用法:
1 |
yarn queue [options] |
参数项:
help | 帮助 |
-status <QueueName> | 打印队列的状态 |
version
打印Hadoop版本信息。
用法:
1 |
yarn version |
管理员命令
为Hadoop集群管理员提供的命令。
daemonlog
在守护进程中为指定类获取/设置日志级别。
用法:
1 2 |
yarn daemonlog -getlevel <host:httpport> <classname> yarn daemonlog -setlevel <host:httpport> <classname> <level> |
参数项:
-getlevel <host:httpport> <classname> | 打印运行在<host:port>的守护进程的指定类的日志级别,这个命令内部会连接http://<host:port>/logLevel?log=<name> |
-setlevel <host:httpport> <classname> <level> | 设置运行在<host:port>的守护进程的指定类的日志级别,这个命令内部会连接http://<host:port>/logLevel?log=<name> |
举例:
1 |
yarn daemonlog -setlevel 127.0.0.1:8088 org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl DEBUG |
nodemanager
启动nodemanager。
用法:
1 |
yarn nodemanager |
proxyserver
启动web proxy server。
用法:
1 |
yarn proxyserver |
resourcemanager
启动ResourceManager。
用法:
1 |
yarn resourcemanager [-format-state-store] |
参数:
-format-state-store | 格式化RMStateStore。如果之前的应用可以丢弃,则清理RMStateStore, 仅可以在ResourceManager没有运行的时候执行 |
rmadmin
运行ResourceManager管理客户端。
用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
yarn rmadmin [-refreshQueues] [-refreshNodes] [-refreshUserToGroupsMapping] [-refreshSuperUserGroupsConfiguration] [-refreshAdminAcls] [-refreshServiceAcl] [-getGroups [username]] [-transitionToActive [--forceactive] [--forcemanual] <serviceId>] [-transitionToStandby [--forcemanual] <serviceId>] [-failover [--forcefence] [--forceactive] <serviceId1> <serviceId2>] [-getServiceState <serviceId>] [-checkHealth <serviceId>] [-help [cmd]] |
参数详情:
-refreshQueues | 重载队列的ACL,状态和调度器特定的属性,ResourceManager将重载mapred-queues配置文件 |
-refreshNodes | 在ResourceManager刷新hosts信息; dfs.hosts:列出了允许连入NameNode的datanode清单(IP或者机器名); dfs.hosts.exclude:列出了禁止连入NameNode的datanode清单(IP或者机器名); 重新读取hosts和exclude文件,更新允许连到Namenode的或那些需要退出或入编的Datanode的集合。 |
-refreshUserToGroupsMappings | 刷新用户到组的映射。 |
-refreshSuperUserGroupsConfiguration | 刷新用户组的配置 |
-refreshAdminAcls | 刷新ResourceManager的ACL管理 |
-refreshServiceAcl | ResourceManager重载服务级别的授权文件。 |
-getGroups [username] | 获取指定用户所属的组。 |
-transitionToActive [–forceactive] [–forcemanual] <serviceId> | 尝试将目标服务转为 Active 状态。如果使用了–forceactive选项,不需要核对非Active节点。如果采用了failover,这个命令不能使用。虽然可以重写–forcemanual选项,但需要谨慎。 |
-transitionToStandby [–forcemanual] <serviceId> | 将服务转为 Standby 状态. 如果采用了failover,这个命令不能使用。虽然可以重写–forcemanual选项,但需要谨慎。 |
-failover [–forceactive] <serviceId1> <serviceId2> | 启动从serviceId1 到 serviceId2的故障转移。如果使用了-forceactive选项,即使服务没有准备,也会尝试故障转移到目标服务。如果采用了自动故障转移,这个命令不能使用。 |
-getServiceState <serviceId> | 返回服务的状态。(注:ResourceManager不是HA,不能运行该命令) |
-checkHealth <serviceId> | 请求服务器执行健康检查,如果检查失败,RMAdmin将用一个非零标示退出。(注:ResourceManager不是HA,不能运行该命令的) |
-help [cmd] | 显示指定命令的帮助,如果没有指定,则显示命令的帮助 |
scmadmin
运行Shared Cache Manager管理客户端。
用法:
1 |
yarn scmadmin [options] |
参数:
-help | Help |
-runCleanerTask | 运行cleaner任务 |
sharedcachemanager
启动Shared Cache Manager。
用法:
1 |
yarn sharedcachemanager |
timelineserver
启动TimeLineServer
用法:
1 |
yarn timelineserver |
##########
发表评论