Example usage for org.apache.hadoop.yarn.util.resource Resources subtractFrom

List of usage examples for org.apache.hadoop.yarn.util.resource Resources subtractFrom

Introduction

In this page you can find the example usage for org.apache.hadoop.yarn.util.resource Resources subtractFrom.

Prototype

public static Resource subtractFrom(Resource lhs, Resource rhs) 

Source Link

Usage

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);
    }
}