YARN shell 命令获取 运行 应用程序使用的容器和 vcore 数量

YARN shell command to get number of containers and vcores used by running applications

hadoop job -list 似乎只显示 mapreduce 作业,但我的资源管理器 UI 显示 YARN 上所有作业 运行 之类的 "Allocated CPU VCores" 和 "Allocated Memory MB" (包括 Spark 和 Tez 之类的东西)。

如何通过命令行而不是转到 UI 获得这些结果?

YARN 支持不同类型的应用程序。 "MapReduce" 是 YARN 支持的一种应用程序。如果您使用 hadoop job(已弃用,您应该改用 mapred job)或 mapred job,您只能操作 MapReduce 作业。

要查看不同类型应用程序(mapreduce、spark 等)的状态,您应该使用 YARN CLI。

例如"yarn application -list -appStates ALL",列出所有申请的状态。此命令的输出包含一列 "Application-Type",它指示应用程序的类型(例如,用于 MapReduce 应用程序的 MAPREDUCE)。

您可以获得有关应用程序、应用程序尝试、容器等的详细信息。此处提供了 2.7.1 版 Hadoop 的命令:https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YarnCommands.html

但是,这些命令不会通过 CLI return "Allocated CPU VCores" 和 "Allocated Memory MB" 等详细信息。

yarn application -status {Application ID} 命令returns "Aggregate Resource Allocation""MB-seconds"而言和 "vcore-seconds"

例如-status 我的一个应用程序 returned:

聚合资源分配:12865641 MB 秒,1041 vcore 秒