那些年,我们一脸懵逼的yarn命令yarn基本命令实践总结(建议收藏)

Posted 扫地增

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了那些年,我们一脸懵逼的yarn命令yarn基本命令实践总结(建议收藏)相关的知识,希望对你有一定的参考价值。

1 yarn

  • 用法:
yarn [--config confdir] [COMMAND | CLASSNAME]

1.1 参数:

1.1.1 resourcemanager

  • 作用: 启动resourcemanager。
参数选项描述
-format-state-storeRMStateStore格式化. 如果过去的应用程序不再需要,则清理RMStateStore, RMStateStore仅仅在ResourceManager没有运行的时候,才运行RMStateStore
-remove-application-from-state-store使用 -remove-application-from-state-store <appId> 从RMStateStore中删除应用程序

示例:

yarn resourcemanager -format-state-store

yarn resourcemanager -remove-application-from-state-store application_1620979527782_46718

1.1.2 nodemanager

  • 作用: 启动NodeManager。
    示例:
yarn nodemanager

1.1.3 timelineserver

  • 作用: 启动 timeline server。
    示例:
yarn timelineserver

1.1.4 sharedcachemanager

  • 作用: 启动Shared Cache Manager。
    示例:
yarn sharedcachemanager

1.1.5 proxyserver

  • 作用: 启动web proxy server。
    示例:
yarn proxyserver

1.1.6 top

  • 作用: 类似linux里的top命令,查看正在运行的程序资源使用情况
    示例:
yarn top

在这里插入图片描述

1.1.7 version

  • 作用: 查看hadoop版本。
    示例:
yarn version

在这里插入图片描述

1.1.8 classpath --glob

  • 作用: 查看详细类路径。
yarn classpath --glob

在这里插入图片描述
查看路径。

yarn classpath

在这里插入图片描述

1.1.9 yarn jar [mainClass] args…

  • 作用: 提交任务到yarn
yarn jar [mainClass] args...

1.1.10 registrydns

  • 作用: 启动RegistryDNS服务
yarn registrydns

1.1.11 schedulerconf

  • 作用: 更新调度器配置文件,此功能为alpha阶段,随后会改变。

  • 用法:

yarn schedulerconf [options]
  • 参数:
参数描述
-add <"queuePath1:key1=val1,key2=val2;queuePath2:key3=val3">添加分号分隔的队列配置。
-remove <"queuePath1;queuePath2">移除队列,队列必须为STOPED状态,才能被删除。
-update<"queuePath1:key1=val1,key2=val2;queuePath2:key3=val3">更新队列配置。
-global <key1=val1,key2=val2>更新调度器全局配置。

2 yarn application

  • 用法:
yarn application COMMAND
  • 参数:
参数描述
-appStates与 -list 配合使用,基于应用程序的状态来过滤,多个状态用逗号分隔状态。有效的状态:ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINISHED,FAILED,KILLED
-appTypes与 -list 配合使用,基于应用程序的类型来过滤,多个应用程序用逗号分隔
-help帮助列表
-kill杀死指定的应用程序
-list从 ResourceManager 获取应用程序列表. 使用 -appTypes 基于应用程序的类型来过滤 使用 -appStates 基于应用程序的状态来过滤
-movetoqueue将应用程序移动到不同的队列
-queue与 movetoqueue配合使用,移到指定队列
-status获取应用程序的状态
  • 示例:
  1. 获取某状态的应用列表
yarn application -list -appStates RUNNING

在这里插入图片描述

  1. 获取某应用类型应用列表
yarn application -list -appTypes SPARK

在这里插入图片描述

  1. 杀掉已经提交的到yarn上的应用
yarn application -kill application_1620979527782_46922

在这里插入图片描述

  1. 获取某应用的状态
yarn application -status application_1620979527782_46922

在这里插入图片描述

  1. 将任务换队列
yarn application -movetoqueue application_1620979527782_46922 -queue kb_bigdata_day

在这里插入图片描述

3 yarn applicationattempt

  • 用法:
yarn applicationattempt COMMAND
  • 参数:
参数描述
-help帮助列表
-list获取应用程序尝试的列表
-status获取应用程序尝试的状态
  • 示例:
  1. 获取应用程序尝试的列表
yarn applicationattempt -list application_1620979527782_46109

在这里插入图片描述

  1. 获取应用程序尝试的状态
yarn applicationattempt -status appattempt_1620979527782_46109_000002

在这里插入图片描述

4 yarn container

  • 用法:
yarn container [options]
  • 参数:
命令选项描述
-help帮助
-list <Application Attempt Id>应用程序尝试的Containers列表
-status \\<ContainerId>打印Container的状态
-signal <container ID [signal command]>
  • 示例:
  1. 应用程序尝试的Containers列表
yarn container -list appattempt_1620979527782_46109_000002

在这里插入图片描述

  1. 打印Container的状态
yarn container -status container_1620979527782_46109_02_000001

在这里插入图片描述
3. 获取Container的信号状态

yarn container --signal container_1620979527782_46109_02_000001

在这里插入图片描述

5 yarn node

  • 用法:
yarn node [options]
  • 参数:
参数描述
-all与 -list 打印所有节点的报告
-list获取所有 RUNNING 状态的节点。 支持 -states 选项过滤指定的状态。节点状态包括 NEW,RUNNING,UNHEALTH,DECOMMISSIONED,LOST 和 REBOOTED
-states与 -list 配合使用,用逗号分隔节点状态,只显示这些状态的节点信息
-status <Node-Id>获取指定节点的状态
  • 示例:
  1. 查看所有节点的报告
yarn node -all -list

在这里插入图片描述

  1. 获取所有 RUNNING 状态的节点
yarn node -list

在这里插入图片描述

  1. 显示某状态的节点信息
 yarn node -list -states RUNNING

在这里插入图片描述

  1. 获取指定节点的状态
yarn node -status bj00-a-080-027-bdy.xxx.com:25319

在这里插入图片描述

6 yarn queue

  • 用法:
yarn queue [options]
  • 参数:
参数描述
-help帮助列表
-status获取队列的状态
  • 示例:
  1. 查看某队列的状态
yarn queue -status kb_bigdata_hour

在这里插入图片描述

7 yarn logs

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

注:应用程序没有完成,该命令是不能打印日志的。

  • 参数:
命令选项描述
-applicationId <application ID>指定应用程序ID,应用程序的ID可以在yarn.resourcemanager.webapp.address配置的路径查看(即:ID)
-appOwner <AppOwner>应用的所有者(如果没有指定就是当前用户)应用程序的ID可以在yarn.resourcemanager.webapp.address配置的路径查看(即:User)
-containerId <ContainerId>Container Id
-help帮助
-nodeAddress <NodeAddress>节点地址的格式:nodename:port (端口是配置文件中:yarn.nodemanager.webapp.address参数指定)
  • 示例:
  1. 查看指定应用程序的日志信息
yarn logs -applicationId application_1620979527782_46962

在这里插入图片描述

  1. 查看指定应用和应用的所有者的日志信息
yarn logs -applicationId application_1620979527782_46962  -appOwner bd

在这里插入图片描述

  1. 查询指定应用和容器的的日志信息
yarn logs -applicationId application_1620979527782_0010 -containerId container_1620979527782_0010_01_000001

在这里插入图片描述

  1. 查看指定应用、容器及节点地址的日志信息
yarn logs -applicationId application_1620979527782_0010 -containerId container_1620979527782_0010_01_000001 -nodeAddress bj00-a-080-027-bdy.xxx.com:6925

在这里插入图片描述

8 yarn daemonlog

  • 使用:
   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>

针对指定的守护进程,获取/设置日志级别.

  • 示例:
[root@hadoopcluster78 ~]$ hadoop daemonlog -getlevel hadoopcluster82:50075 org.apache.hadoop.hdfs.server.datanode.DataNode
Connecting to http://hadoopcluster82:50075/logLevel?log=org.apache.hadoop.hdfs.server.datanode.DataNode
Submitted Log Name: org.apache.hadoop.hdfs.server.datanode.DataNode
Log Class: org.apache.commons.logging.impl.Log4JLogger
Effective level: INFO

9 yarn rmadmin

  • 参数:
参数描述
-refreshQueues重载队列的ACL、状态和调度器特定的属性,ResourceManager将重新加载mapred-queues配置文件
-refreshNodes [-g [timeout in seconds] -client \\| server]动态刷新dfs.hosts dfs.hosts.exclude配置,无需重启NameNode。dfs.hosts:列出了允许连入NameNode的datanode清单(IP或者机器名)dfs.hosts.exclude:列出了禁止连入NameNode datanode清单(IP或者机器名)重新读取hosts和exclude文件,更新允许连到Namenode的或那些需要退出或入编的Datanode的集合。
-refreshSuperUserGroupsConfiguration刷新用户组的配置
-refreshUserToGroupsMappings刷新用户到组的映射
-refreshAdminAcls刷新 ResourceManager 的 ACL 管理
-refreshServiceAclResourceManager 重载服务级别的授权文件
-getGroups [username]获取指定用户所属的组
-help [cmd]显示指定命令的帮助,没有指定,则显示全部指令帮助
-addToClusterNodeLabels [label1,label2,label3] (label splitted by “,”)添加到集群节点标签。默认是true
-removeFromClusterNodeLabels [label1,label2,label3] (label splitted by “,”)移除标签
-replaceLabelsOnNode [label1,label2,label3] (label splitted by “,”)替换节点标签,目前不支持在单个主机上指定多个标签。
-directlyAccessNodeLabelStore直接访问节点标签库,已经废弃,未来会移除。如果你配置了yarn.node-labels.fs-store.root-dir到一个本地目录,而不是分布式目录,则此命令只能在资源管理器节点上运行。
-refreshClusterMaxPriority刷新集群最大优先级
-updateNodeResource [NodeID] [MemSize] [vCores] ([OvercommitTimeout])更新指定的节点资源。
-updateNodeResource [NodeID] [ResourceTypes]([OvercommitTimeout])更新指定的节点上的资源类型。资源类型是逗号分隔的键值对,例如:memory-mb=1024M,vcores=1,resource1=2G,resource2=4m,resource1=2G,resource2=4m
-transitionToActive [–forceactive]尝试将目标服务转为 Active 状态。如果使用了–forceactive选项,不需要核对非Active节点。如果采用了自动故障转移,这个命令不能使用。虽然你可以重写–forcemanual选项,你需要谨慎。
-transitionToStandby将服务转为 Standby 状态. 如果采用了自动故障转移,这个命令不能使用。虽然你可以重写–forcemanual选项,你需要谨慎。
-failover [–forcefence] [–forceactive]启动从serviceId1 到 serviceId2的故障转移。如果使用了-forceactive选项,即使服务没有准备,也会尝试故障转移到目标服务。如果采用了自动故障转移,这个命令不能使用。
-getServiceState返回服务的状态。(注:ResourceManager不是HA的时候,时不能运行该命令的)
-getAllServiceState返回所有服务的状态。
-checkHealth请求服务器执行健康检查,如果检查失败,RMAdmin将用一个非零标示退出。(注:ResourceManager不是HA的时候,时不能运行该命令的)
  • 示例:
yarn rmadmin -getGroups bd

在这里插入图片描述

yarn rmadmin  -getAllServiceState

在这里插入图片描述

10 yarn scmadmin

运行分片缓存管理器管理客户端。

  • 用法:
yarn scmadmin [options]
  • 参数:
参数选项描述
-helpHelp
-runCleanerTask运行清理任务

以上是关于那些年,我们一脸懵逼的yarn命令yarn基本命令实践总结(建议收藏)的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces 122G Lucky Array(一脸懵逼的树状数组)

一脸懵逼学习HBase的搭建(注意HBase的版本)

GIT原理和常用命令速成

一脸懵逼学习Linux的Shell编程

一脸懵逼学习Hive的安装

面试官:CPU 是如何工作的?我一脸懵逼。。