Details
-
Bug
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
2.4.0
-
None
-
None
Description
I added some log info to the method normalizeRequest() as follows.
public static void normalizeRequest(
ResourceRequest ask,
ResourceCalculator resourceCalculator,
Resource clusterResource,
Resource minimumResource,
Resource maximumResource,
Resource incrementResource)
The resulted log showed that the vcore in ask was changed from 2 to 1.
2014-08-01 20:54:15,537 INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils (IPC Server handler 4 on 9024): Before request normalization, the ask capacity: <memory:1536, vCores:2>
2014-08-01 20:54:15,537 INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils (IPC Server handler 4 on 9024): After request normalization, the ask capacity: <memory:1536, vCores:1>
The root cause is the DefaultResourceCalculator calls Resources.createResource(normalizedMemory) to regenerate a new resource with vcore = 1.
This bug is critical and it leads to the mismatch of the request resource and the container resource and many other potential issues if the user requests containers with vcore > 1.