菜鸟科技网

Hadoop YARN常用命令有哪些?

Hadoop YARN(Yet Another Resource Negotiator)是Hadoop集群的资源管理和作业调度框架,它将资源管理和作业调度功能分离,通过ResourceManager(全局资源管理者)和NodeManager(单节点资源管理者)协同工作,实现了集群资源的动态分配和作业的高效执行,掌握YARN命令是管理和调试Hadoop集群的基础,以下从集群状态监控、作业提交与管理、资源管理等方面详细介绍常用命令。

Hadoop YARN常用命令有哪些?-图1
(图片来源网络,侵删)

集群状态监控命令

  1. yarn node -list
    用于查看集群中所有NodeManager的状态及资源信息,命令格式为yarn node -list -all,输出包括NodeManager的ID、状态(如RUNNING、UNHEALTHY)、可用vCores、内存容量及已用资源等,通过该命令可快速定位异常节点或资源瓶颈节点。

  2. yarn application -list
    列出当前集群中所有作业的状态,常用参数包括-appStates(过滤作业状态,如RUNNING、FAILED、COMPLETED)和-queue(按队列过滤)。yarn application -list -appStates RUNNING可查看正在运行的作业。

  3. yarn application -status
    查看指定作业的详细信息,包括作业状态、进度、运行时间、资源申请量、队列名称等。yarn application -status application_1630000000000_001可获取ID为application_1630000000000_001的作业详情。

  4. yarn cluster -status
    查看集群整体资源状态,包括总vCores、总内存、已用资源、可用资源及活跃NodeManager数量等,帮助管理员掌握集群资源利用率。

    Hadoop YARN常用命令有哪些?-图2
    (图片来源网络,侵删)

作业提交与管理命令

  1. yarn jar -submit
    提交MapReduce或Spark作业到集群,基本格式为yarn jar <jar_path> <main_class> [args],例如yarn jar wordcount.jar WordCount /input /output,可通过-D参数配置作业属性,如-Dmapreduce.job.queuename=production指定作业队列。

  2. yarn application -kill
    终止指定作业。yarn application -kill application_1630000000000_001会立即终止该作业并释放占用的资源。

  3. yarn application -failover
    对失败的作业进行故障转移,尝试重新调度,适用于因ResourceManager故障导致的作业卡死情况。

  4. yarn logs -get
    获取指定作业的日志,默认下载到本地当前目录,可通过-destination指定路径,例如yarn logs -get application_1630000000000_001 -dest /tmp/logs

资源与队列管理命令

  1. yarn queue -status
    查看指定队列的资源使用情况,包括队列容量、当前已用资源、最大资源限制及作业数量等,需启用Resource Scheduler(如Capacity Scheduler)才能使用。

  2. yarn rmadmin -updateQueue
    动态更新队列配置,如修改队列容量或资源限制。yarn rmadmin -updateQueue "capacity=50;maxCapacity=70" productionproduction队列的容量调整为50%,最大容量为70%。

常用命令参数总结

命令类型 常用命令示例 核心功能说明
集群状态监控 yarn node -list -all 列出所有NodeManager状态及资源信息
yarn cluster -status 查看集群整体资源使用情况
作业管理 yarn application -list -appStates RUNNING 列出指定状态的作业
yarn application -kill <application_id> 终止指定作业
作业提交 yarn jar wordcount.jar WordCount /input /output 提交MapReduce作业
日志获取 yarn logs -get <application_id> -dest /tmp 下载作业日志到指定路径
队列管理 yarn queue -status production 查看production队列的资源使用情况

相关问答FAQs

Q1: 如何查看YARN作业的详细运行日志?
A1: 可通过两种方式获取:

  1. 使用yarn logs -get <application_id>命令下载日志到本地,日志会按NodeManager和Container目录结构组织。
  2. 登录YARN Web UI(通常为http://8088),在指定作业的“Logs”页面可直接查看各Container的实时日志,适合调试时快速定位错误。

Q2: YARN作业提交失败后,如何排查原因?
A2: 排查步骤如下:

  1. 检查作业提交命令中的JAR包路径、主类名及输入输出路径是否正确。
  2. 使用yarn application -status <application_id>查看作业失败状态(如FAILED/KILLED),并检查错误信息中的具体原因(如权限不足、内存溢出等)。
  3. 通过yarn logs -get <application_id>下载日志,重点查看stderr中的异常堆栈信息,或使用Web UI的“Diagnostics”标签页获取详细诊断报告。
  4. 检查集群资源是否充足,可通过yarn cluster -status确认可用vCores和内存是否满足作业需求。
分享:
扫描分享到社交APP
上一篇
下一篇