Description
I’m proposing a new REST API for YARN which exposes a snapshot of the Resource Requests that exist inside of the Scheduler. My motivation behind this new feature is to allow external software to monitor the amount of resources being requested to gain more insightful information into cluster usage than is already provided. The API can also be used by external software to detect a starved application and alert the appropriate users and/or sys admin so that the problem may be remedied.
Here is the proposed API (a JSON counterpart is also available):
<resourceRequests> <MB>7680</MB> <VCores>7</VCores> <appMaster> <applicationId>application_1412191664217_0001</applicationId> <applicationAttemptId>appattempt_1412191664217_0001_000001</applicationAttemptId> <queueName>default</queueName> <totalMB>6144</totalMB> <totalVCores>6</totalVCores> <numResourceRequests>3</numResourceRequests> <requests> <request> <MB>1024</MB> <VCores>1</VCores> <numContainers>6</numContainers> <relaxLocality>true</relaxLocality> <priority>20</priority> <resourceNames> <resourceName>localMachine</resourceName> <resourceName>/default-rack</resourceName> <resourceName>*</resourceName> </resourceNames> </request> </requests> </appMaster> <appMaster> ... </appMaster> </resourceRequests>