Hadoop YARN 命令大全详解

Hadoop YARN 命令大全详解

一、命令概览与分类

1.1 核心命令分类

YARN命令
用户命令
管理员命令
ApplicationMaster命令
应用管理
日志操作
节点查看
资源管理
队列操作
应用控制

二、用户命令详解

2.1 应用管理命令

命令参数说明示例
yarn application-list列出所有应用yarn application -list
-status <app_id>查看应用状态yarn application -status application_1640000000000_0001
-kill <app_id>终止应用yarn application -kill application_1640000000000_0001
-movetoqueue <app_id> -queue <queue>移动应用到新队列yarn application -movetoqueue app_001 -queue prod
yarn jar<jar_path> [args]提交应用yarn jar hadoop-examples.jar pi 10 100
yarn app-launch <app_name> <jar_path>启动应用yarn app -launch WordCount /jobs/wc.jar

2.2 日志操作命令

命令参数说明示例
yarn logs-applicationId <app_id>获取应用日志yarn logs -applicationId application_1640000000000_0001
-containerId <container_id>获取容器日志yarn logs -containerId container_1640000000000_0001_01_000001
-nodeAddress <node:port>指定节点日志yarn logs -nodeAddress node01:8041
-logFiles <filename>指定日志文件yarn logs -logFiles syslog

2.3 节点查看命令

命令参数说明示例
yarn node-list列出所有节点yarn node -list
-status <node_id>查看节点状态yarn node -status node01:8041
-all显示详细信息yarn node -list -all
-states <states>按状态过滤yarn node -list -states RUNNING

2.4 队列操作命令

命令参数说明示例
yarn queue-status <queue>查看队列状态yarn queue -status root.default
-info <queue>显示队列详情yarn queue -info root.prod
-help显示帮助信息yarn queue -help

三、管理员命令详解

3.1 资源管理命令

命令参数说明示例
yarn rmadmin-refreshQueues刷新队列配置yarn rmadmin -refreshQueues
-refreshNodes刷新节点列表yarn rmadmin -refreshNodes
-refreshSuperUserGroups刷新超级用户组yarn rmadmin -refreshSuperUserGroups
-transitionToActive <rm_id>切换为Active RMyarn rmadmin -transitionToActive rm1
-getServiceState <rm_id>获取RM状态yarn rmadmin -getServiceState rm1

3.2 节点管理命令

命令参数说明示例
yarn nodemanager-rollLogs滚动日志文件yarn nodemanager -rollLogs
-recover恢复节点状态yarn nodemanager -recover
-refreshUserToGroupsMappings刷新用户组映射yarn nodemanager -refreshUserToGroupsMappings

3.3 高级管理命令

# 设置资源类型
yarn resourcemanager -addToClusterNodeLabels "GPU,FPGA"

# 配置节点标签
yarn rmadmin -replaceLabelsOnNode "node01:8041=GPU node02:8041=FPGA"

# 查看ACL
yarn queue -showacls

四、ApplicationMaster 控制命令

4.1 应用内控制

命令参数说明示例
yarn container-signal <container_id> <signal>向容器发送信号yarn container -signal container_001 TERM
-list <app_attempt_id>列出应用容器yarn container -list appattempt_1640000000000_0001_000001
-status <container_id>查看容器状态yarn container -status container_001

4.2 AM调试命令

# 获取AM堆栈信息
yarn container -signal <am_container_id> OUTPUT_THREAD_DUMP

# 获取AM环境变量
yarn container -signal <am_container_id> OUTPUT_ENVIRONMENT

# 获取AM诊断信息
yarn container -signal <am_container_id> GRACEFUL_SHUTDOWN

五、实用工具命令

5.1 版本与类路径

命令说明示例
yarn version显示YARN版本yarn version
yarn classpath打印类路径yarn classpath
yarn envvars显示环境变量yarn envvars
yarn check检查环境配置yarn check -native

5.2 日志管理

# 聚合日志到HDFS
yarn logs -aggregate -applicationId app_001

# 查看特定用户的日志
yarn logs -applicationId app_001 -appOwner hadoopadmin

# 下载日志到本地
yarn logs -applicationId app_001 > app_logs.txt

六、高级查询命令

6.1 REST API访问

# 通过CLI访问REST API
yarn application -status app_001 -appTypes MAPREDUCE -webService https://rm-host:8088

# 获取集群指标
yarn node -all -status -showDetails | jq '.nodes[].nodeHealthStatus'

6.2 历史服务器命令

# 启动历史服务器
mapred historyserver

# 查看历史作业
yarn job -list -all
yarn job -status job_1640000000000_0001

七、安全相关命令

7.1 Kerberos集成

# 获取Kerberos票据
kinit -kt /etc/security/keytabs/yarn.service.keytab yarn/node01@EXAMPLE.COM

# 验证Kerberos状态
yarn kerbcheck

# 刷新Kerberos配置
yarn rmadmin -refreshKerb

7.2 权限管理

# 添加队列ACL
yarn queue -addACL "queue root.prod acl admin:admin"

# 查看队列ACL
yarn queue -showACL root.prod

# 刷新访问控制
yarn rmadmin -refreshAdminAcls

八、配置管理命令

8.1 动态配置更新

# 更新调度器配置
yarn rmadmin -updateSchedulerConfig -file new-scheduler.xml

# 刷新资源类型
yarn rmadmin -refreshResourceTypes

# 查看当前配置
yarn daemonlog -getlevel rm-host:8088 org.apache.hadoop.yarn.server.resourcemanager

8.2 配置验证

# 验证配置文件
yarn check -config

# 验证节点配置
yarn node -checkConfiguration node01:8041

九、故障排查命令

9.1 诊断命令

# 获取线程转储
yarn container -signal <container_id> OUTPUT_THREAD_DUMP

# 检查节点健康
yarn node -checkHealth node01:8041

# 查看RM状态
yarn rmadmin -getAllServiceState

9.2 日志分析技巧

# 查找应用错误
yarn logs -applicationId app_001 | grep -A 10 -B 5 "ERROR"

# 分析容器退出原因
yarn container -status <container_id> | grep "Exit Status"

# 监控资源使用
yarn node -list | awk '{print $1, $6, $7}' | column -t

十、命令使用最佳实践

10.1 常用别名设置

# 添加到~/.bashrc
alias yapps="yarn application -list"
alias ykill="yarn application -kill"
alias ynodes="yarn node -list -all"
alias ylogs="yarn logs -applicationId"
alias yqueue="yarn queue -status"

10.2 自动化脚本示例

#!/bin/bash
# 自动清理失败应用
for app in $(yarn application -list -appStates FAILED | awk 'NR>2 {print $1}')
do
  echo "Cleaning $app"
  yarn application -kill $app
  yarn logs -applicationId $app > /logs/${app}.log
done

10.3 性能监控命令

# 实时监控集群
watch -n 5 "yarn node -list | grep RUNNING | wc -l"

# 生成资源报告
yarn node -list | awk '{print $1, $4, $5, $6}' | sort -k4 -n > cluster_util.txt

# 队列负载分析
yarn queue -info root.prod | grep -E 'Capacity|UsedCapacity'

十一、命令参考速查表

类别常用命令关键参数
应用管理yarn application-list, -status, -kill
日志操作yarn logs-applicationId, -containerId
节点监控yarn node-list, -status, -states
队列管理yarn queue-status, -info
集群管理yarn rmadmin-refreshQueues, -transitionToActive
容器控制yarn container-signal, -status
安全管理yarn kerbcheck-refreshKerb
工具命令yarn classpath-version, -check

最佳实践提示

  1. 生产环境使用 -webService 参数避免直接连接RM
  2. 定期清理历史日志:yarn logs -cleanup -applicationIdOld 30
  3. 使用 -appTypes-appStates 过滤应用列表
  4. 配置命令别名提高运维效率
  5. 结合 jq 工具解析JSON格式输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值