List of usage examples for org.apache.hadoop.yarn.util.resource Resources subtractFrom
public static Resource subtractFrom(Resource lhs, Resource rhs)
From source file:org.apache.tez.dag.app.rm.DagAwareYarnTaskScheduler.java
License:Apache License
@GuardedBy("this") @Nullable/*from ww w. ja v a 2s.co m*/ private Object containerCompleted(HeldContainer hc) { idleTracker.remove(hc); heldContainers.remove(hc.getId()); Resources.subtractFrom(allocatedResources, hc.getCapability()); removeTaskAssignment(hc.getAssignedTask()); hc.released(); return hc.getLastTask(); }
From source file:org.apache.tez.dag.app.rm.TaskScheduler.java
License:Apache License
private Container unAssignContainer(Object task, boolean releaseIfFound) { Container container = taskAllocations.remove(task); if (container == null) { return null; }//w w w .j a v a2 s . c o m Resources.subtractFrom(allocatedResources, container.getResource()); assert allocatedResources.getMemory() >= 0; containerAssigments.remove(container.getId()); if (releaseIfFound) { releaseContainer(container.getId(), task); } return container; }
From source file:org.apache.tez.dag.app.rm.TaskScheduler.java
License:Apache License
private Object unAssignContainer(ContainerId containerId, boolean releaseIfFound) { Object task = containerAssigments.remove(containerId); if (task == null) { return null; }/*from www . ja va2 s.c o m*/ Container container = taskAllocations.remove(task); assert container != null; Resources.subtractFrom(allocatedResources, container.getResource()); assert allocatedResources.getMemory() >= 0; if (releaseIfFound) { releaseContainer(containerId, task); } return task; }
From source file:org.apache.tez.dag.app.rm.YarnTaskSchedulerService.java
License:Apache License
private void releaseContainer(ContainerId containerId) { Object assignedTask = containerAssignments.remove(containerId); if (assignedTask != null) { // A task was assigned to this container at some point. Inform the app. appClientDelegate.containerBeingReleased(containerId); }/*from ww w . ja v a 2 s . c o m*/ HeldContainer delayedContainer = heldContainers.remove(containerId); if (delayedContainer != null) { Resources.subtractFrom(allocatedResources, delayedContainer.getContainer().getResource()); } if (delayedContainer != null || !shouldReuseContainers) { amRmClient.releaseAssignedContainer(containerId); } if (assignedTask != null) { // A task was assigned at some point. Add to release list since we are // releasing the container. releasedContainers.put(containerId, assignedTask); } }