hadoop yarn:显示应用程序的待处理资源请求
hadoop yarn: show the pending resoure request of an application
如何获取应用程序发送给资源管理器的待处理请求数?据我所知,资源管理器可能不会立即分配请求的资源,因此请求将被挂起,对吗?
我正在使用 Hadoop 2.7.1。从资源管理器 UI,您可以看到 "Outstanding Resource Requests".
在RM UI:
- 单击 运行 应用程序(例如 application_1447644421851_0004)
- 在申请页面,点击尝试ID(例如appattempt_1447644421851_0004_000001)
- 在“应用程序尝试 ID”页面中,您将看到“已分配容器总数”和“未完成资源请求总数”的详细信息".
例如,我 运行 一个 DistCp 作业,需要 24 个映射器。因此,分配的容器总数为 24 + 1(Application Master 有 1 个容器)= 25。
根据我的设置,每个容器需要 1,228 MB 内存和 1 个 vCore。
我已经用下面的图片解释了这项工作的进展:
第 1 阶段:
开始时启动了 7 个映射器 运行,总共分配了 8 个容器(7 个用于映射器,1 个用于 Application Master)。
所以,
Total Allocated Containers: 8
Total Outstanding Requests: <memory: 20876, vCores:17>
您可以观察到,有 17 个容器的未完成请求(25 减 8)。因此,未完成的内存请求总数为 = 17 * 1228 MB = 20876 MB,对于 vCores 为 = 17 * 1 = 17
查看下图:
第 2 阶段:
7 个映射器已完成,接下来的 7 个已安排。
现在:
Total Allocated Containers: 15
Total Outstanding Requests: <memory: 12280, vCores:10>
您可以观察到,未完成的请求现在已减少到 10 个容器(25 减 15)。因此,未完成的内存请求总数为 = 10 * 1228 MB = 12280 MB,对于 vCores 为 = 10 * 1 = 10
查看下图:
第 3 阶段:
14 个映射器已完成,接下来的 7 个已安排。
现在:
Total Allocated Containers: 22
Total Outstanding Requests: <memory: 3684, vCores:3>
您可以观察到,未完成的请求已减少到 3 个容器(25 减去 22)。因此,未完成的内存请求总数为 = 3 * 1228 MB = 3684 MB,对于 vCores 为 = 3 * 1 = 3
查看下图:
最后阶段:
最后,当所有容器都分配完毕后,您将只看到“Total Allocated Containers”。
查看下图:
希望这能澄清您的疑问。
您可以从 YARN API 端点
获取容器信息和更多信息
http://<rm http address:port>/ws/v1/cluster/metrics
请访问以下资源以获取更多详细信息
https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Metrics_API
如何获取应用程序发送给资源管理器的待处理请求数?据我所知,资源管理器可能不会立即分配请求的资源,因此请求将被挂起,对吗?
我正在使用 Hadoop 2.7.1。从资源管理器 UI,您可以看到 "Outstanding Resource Requests".
在RM UI:
- 单击 运行 应用程序(例如 application_1447644421851_0004)
- 在申请页面,点击尝试ID(例如appattempt_1447644421851_0004_000001)
- 在“应用程序尝试 ID”页面中,您将看到“已分配容器总数”和“未完成资源请求总数”的详细信息".
例如,我 运行 一个 DistCp 作业,需要 24 个映射器。因此,分配的容器总数为 24 + 1(Application Master 有 1 个容器)= 25。
根据我的设置,每个容器需要 1,228 MB 内存和 1 个 vCore。
我已经用下面的图片解释了这项工作的进展:
第 1 阶段:
开始时启动了 7 个映射器 运行,总共分配了 8 个容器(7 个用于映射器,1 个用于 Application Master)。
所以,
Total Allocated Containers: 8
Total Outstanding Requests: <memory: 20876, vCores:17>
您可以观察到,有 17 个容器的未完成请求(25 减 8)。因此,未完成的内存请求总数为 = 17 * 1228 MB = 20876 MB,对于 vCores 为 = 17 * 1 = 17
查看下图:
第 2 阶段:
7 个映射器已完成,接下来的 7 个已安排。
现在:
Total Allocated Containers: 15
Total Outstanding Requests: <memory: 12280, vCores:10>
您可以观察到,未完成的请求现在已减少到 10 个容器(25 减 15)。因此,未完成的内存请求总数为 = 10 * 1228 MB = 12280 MB,对于 vCores 为 = 10 * 1 = 10
查看下图:
第 3 阶段:
14 个映射器已完成,接下来的 7 个已安排。
现在:
Total Allocated Containers: 22
Total Outstanding Requests: <memory: 3684, vCores:3>
您可以观察到,未完成的请求已减少到 3 个容器(25 减去 22)。因此,未完成的内存请求总数为 = 3 * 1228 MB = 3684 MB,对于 vCores 为 = 3 * 1 = 3
查看下图:
最后阶段:
最后,当所有容器都分配完毕后,您将只看到“Total Allocated Containers”。
查看下图:
希望这能澄清您的疑问。
您可以从 YARN API 端点
获取容器信息和更多信息http://<rm http address:port>/ws/v1/cluster/metrics
请访问以下资源以获取更多详细信息
https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Metrics_API