如何获得应用程序发送到资源管理器的待处理请求的数量?据我所知,资源管理器可能不会立即分配所请求的资源,因此请求将被挂起,对吗?
最佳答案
我正在使用Hadoop 2.7.1。从资源管理器UI中,您可以看到“未完成的资源请求”。
在RM用户界面中:
例如,我运行了一个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
查看下面的图片:
最后阶段:
最后,在分配完所有容器后,您将只看到“已分配的容器总数”。
查看下面的图片:
希望这可以澄清您的疑问。
关于Hadoop yarn : show the pending resoure request of an application,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33705000/