org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity
Class ParentQueue

java.lang.Object
  extended by org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue
      extended by org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue
All Implemented Interfaces:
CSQueue, Queue
Direct Known Subclasses:
PlanQueue

@InterfaceAudience.Private
@InterfaceStability.Evolving
public class ParentQueue
extends AbstractCSQueue


Field Summary
protected  Set<CSQueue> childQueues
           
 
Constructor Summary
ParentQueue(CapacitySchedulerContext cs, String queueName, CSQueue parent, CSQueue old)
           
 
Method Summary
 CSAssignment assignContainers(org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerNode node, boolean needToUnreserve)
          Assign containers to applications in the queue or it's children (if any).
 void attachContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application, RMContainer rmContainer)
          Attach a container to this queue
 void collectSchedulerApplications(Collection<org.apache.hadoop.yarn.api.records.ApplicationAttemptId> apps)
          Adds all applications in the queue and its subqueues to the given collection.
 void completedContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application, FiCaSchedulerNode node, RMContainer rmContainer, org.apache.hadoop.yarn.api.records.ContainerStatus containerStatus, RMContainerEventType event, CSQueue completedChildQueue, boolean sortQueues)
          A container assigned to the queue has completed.
 void detachContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application, RMContainer rmContainer)
          Detach a container from this queue
 void finishApplication(org.apache.hadoop.yarn.api.records.ApplicationId application, String user)
          An application submitted to this queue has finished.
 void finishApplicationAttempt(FiCaSchedulerApp application, String queue)
          An application attempt submitted to this queue has finished.
 float getAbsActualCapacity()
          Get actual capacity of the queue, this may be different from configured capacity when mis-config take place, like add labels to the cluster
 ActiveUsersManager getActiveUsersManager()
          Get the ActiveUsersManager for the queue.
 List<CSQueue> getChildQueues()
          Get child queues
 int getNumApplications()
          Get the number of applications in the queue.
 org.apache.hadoop.yarn.api.records.QueueInfo getQueueInfo(boolean includeChildQueues, boolean recursive)
          Get queue information
 String getQueuePath()
          Get the full name of the queue, including the heirarchy.
 List<org.apache.hadoop.yarn.api.records.QueueUserACLInfo> getQueueUserAclInfo(org.apache.hadoop.security.UserGroupInformation user)
          Get queue ACLs for given user.
 void recoverContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource, SchedulerApplicationAttempt attempt, RMContainer rmContainer)
          Recover the state of the queue for a given container.
 void reinitialize(CSQueue newlyParsedQueue, org.apache.hadoop.yarn.api.records.Resource clusterResource)
          Reinitialize the queue.
 void submitApplication(org.apache.hadoop.yarn.api.records.ApplicationId applicationId, String user, String queue)
          Submit a new application to the queue.
 void submitApplicationAttempt(FiCaSchedulerApp application, String userName)
          Submit an application attempt to the queue.
 String toString()
           
 void updateClusterResource(org.apache.hadoop.yarn.api.records.Resource clusterResource)
          Update the cluster resource for queues as we add/remove nodes
 
Methods inherited from class org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue
getAbsoluteCapacity, getAbsoluteCapacityByNodeLabel, getAbsoluteMaximumCapacity, getAbsoluteMaximumCapacityByNodeLabel, getAbsoluteUsedCapacity, getAccessibleNodeLabels, getACLs, getCapacity, getCapacityByNodeLabel, getDefaultNodeLabelExpression, getMaximumAllocation, getMaximumCapacity, getMetrics, getMinimumAllocation, getNumContainers, getParent, getQueueName, getReservationContinueLooking, getState, getUsedCapacity, getUsedResources, hasAccess, releaseResource, setAbsoluteUsedCapacity, setParent, setUsedCapacity
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

childQueues

protected final Set<CSQueue> childQueues
Constructor Detail

ParentQueue

public ParentQueue(CapacitySchedulerContext cs,
                   String queueName,
                   CSQueue parent,
                   CSQueue old)
            throws IOException
Throws:
IOException
Method Detail

getQueuePath

public String getQueuePath()
Description copied from interface: CSQueue
Get the full name of the queue, including the heirarchy.

Returns:
the full name of the queue

getQueueInfo

public org.apache.hadoop.yarn.api.records.QueueInfo getQueueInfo(boolean includeChildQueues,
                                                                 boolean recursive)
Description copied from interface: Queue
Get queue information

Parameters:
includeChildQueues - include child queues?
recursive - recursively get child queue information?
Returns:
queue information

getQueueUserAclInfo

public List<org.apache.hadoop.yarn.api.records.QueueUserACLInfo> getQueueUserAclInfo(org.apache.hadoop.security.UserGroupInformation user)
Description copied from interface: Queue
Get queue ACLs for given user.

Parameters:
user - username
Returns:
queue ACLs for user

toString

public String toString()
Overrides:
toString in class Object

reinitialize

public void reinitialize(CSQueue newlyParsedQueue,
                         org.apache.hadoop.yarn.api.records.Resource clusterResource)
                  throws IOException
Description copied from interface: CSQueue
Reinitialize the queue.

Parameters:
newlyParsedQueue - new queue to re-initalize from
clusterResource - resources in the cluster
Throws:
IOException

submitApplication

public void submitApplication(org.apache.hadoop.yarn.api.records.ApplicationId applicationId,
                              String user,
                              String queue)
                       throws org.apache.hadoop.security.AccessControlException
Description copied from interface: CSQueue
Submit a new application to the queue.

Parameters:
applicationId - the applicationId of the application being submitted
user - user who submitted the application
queue - queue to which the application is submitted
Throws:
org.apache.hadoop.security.AccessControlException

submitApplicationAttempt

public void submitApplicationAttempt(FiCaSchedulerApp application,
                                     String userName)
Description copied from interface: CSQueue
Submit an application attempt to the queue.


finishApplicationAttempt

public void finishApplicationAttempt(FiCaSchedulerApp application,
                                     String queue)
Description copied from interface: CSQueue
An application attempt submitted to this queue has finished.


finishApplication

public void finishApplication(org.apache.hadoop.yarn.api.records.ApplicationId application,
                              String user)
Description copied from interface: CSQueue
An application submitted to this queue has finished.

user - user who submitted the application

assignContainers

public CSAssignment assignContainers(org.apache.hadoop.yarn.api.records.Resource clusterResource,
                                     FiCaSchedulerNode node,
                                     boolean needToUnreserve)
Description copied from interface: CSQueue
Assign containers to applications in the queue or it's children (if any).

Parameters:
clusterResource - the resource of the cluster.
node - node on which resources are available
needToUnreserve - assign container only if it can unreserve one first
Returns:
the assignment

completedContainer

public void completedContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource,
                               FiCaSchedulerApp application,
                               FiCaSchedulerNode node,
                               RMContainer rmContainer,
                               org.apache.hadoop.yarn.api.records.ContainerStatus containerStatus,
                               RMContainerEventType event,
                               CSQueue completedChildQueue,
                               boolean sortQueues)
Description copied from interface: CSQueue
A container assigned to the queue has completed.

Parameters:
clusterResource - the resource of the cluster
application - application to which the container was assigned
node - node on which the container completed
rmContainer - completed container, null if it was just a reservation
containerStatus - ContainerStatus for the completed container
event - event to be sent to the container
completedChildQueue - CSQueue to reinsert in childQueues
sortQueues - indicates whether it should re-sort the queues

updateClusterResource

public void updateClusterResource(org.apache.hadoop.yarn.api.records.Resource clusterResource)
Description copied from interface: CSQueue
Update the cluster resource for queues as we add/remove nodes

Parameters:
clusterResource - the current cluster resource

getChildQueues

public List<CSQueue> getChildQueues()
Description copied from interface: CSQueue
Get child queues

Returns:
child queues

recoverContainer

public void recoverContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource,
                             SchedulerApplicationAttempt attempt,
                             RMContainer rmContainer)
Description copied from interface: Queue
Recover the state of the queue for a given container.

Parameters:
clusterResource - the resource of the cluster
attempt - the application for which the container was allocated
rmContainer - the container that was recovered.

getActiveUsersManager

public ActiveUsersManager getActiveUsersManager()
Description copied from interface: CSQueue
Get the ActiveUsersManager for the queue.

Returns:
the ActiveUsersManager for the queue

collectSchedulerApplications

public void collectSchedulerApplications(Collection<org.apache.hadoop.yarn.api.records.ApplicationAttemptId> apps)
Description copied from interface: CSQueue
Adds all applications in the queue and its subqueues to the given collection.

Parameters:
apps - the collection to add the applications to

attachContainer

public void attachContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource,
                            FiCaSchedulerApp application,
                            RMContainer rmContainer)
Description copied from interface: CSQueue
Attach a container to this queue

Parameters:
clusterResource - the current cluster resource
application - application to which the container was assigned
rmContainer - the container to attach

detachContainer

public void detachContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource,
                            FiCaSchedulerApp application,
                            RMContainer rmContainer)
Description copied from interface: CSQueue
Detach a container from this queue

Parameters:
clusterResource - the current cluster resource
application - application to which the container was assigned
rmContainer - the container to detach

getAbsActualCapacity

public float getAbsActualCapacity()
Description copied from interface: CSQueue
Get actual capacity of the queue, this may be different from configured capacity when mis-config take place, like add labels to the cluster

Specified by:
getAbsActualCapacity in interface CSQueue
Overrides:
getAbsActualCapacity in class AbstractCSQueue
Returns:
actual queue capacity

getNumApplications

public int getNumApplications()
Description copied from interface: CSQueue
Get the number of applications in the queue.

Returns:
number of applications


Copyright © 2014 Apache Software Foundation. All Rights Reserved.