hadoop yarn:显示申请的待处理资源请求

ubc*_*ben 6 hadoop hadoop-yarn

如何获取应用程序发送给资源管理器的待处理请求数?据我所知,资源管理器可能不会立即分配请求的资源,因此请求将被填写,对吗?

Man*_*lur 5

我正在使用Hadoop 2.7.1。从资源管理器UI中,您可以看到“未完成的资源请求”。

在RM UI中:

  1. 单击正在运行的应用程序(例如,application_1447644421851_0004)
  2. 在应用程序页面中,单击尝试ID(例如appattempt_1447644421851_0004_000001)
  3. 在“应用程序尝试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,对于vCore,它为= 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 ”。

查看下面的图片:

在此处输入图片说明

希望这可以澄清您的疑问。