public abstract class AbstractParentQueue extends AbstractCSQueue
| Modifier and Type | Class and Description |
|---|---|
static class |
AbstractParentQueue.QueueCapacityType |
AbstractCSQueue.CapacityConfigType| Modifier and Type | Field and Description |
|---|---|
protected List<CSQueue> |
childQueues |
activitiesManager, authorizer, capacityConfigType, configuredCapacityVectors, configuredMaxCapacityVectors, queueAllocationSettings, queueContext, queueEntity, queueNodeLabelsSettings, queuePath, readLock, writeLock| Constructor and Description |
|---|
AbstractParentQueue(CapacitySchedulerQueueContext queueContext,
String queueName,
CSQueue parent,
CSQueue old) |
AbstractParentQueue(CapacitySchedulerQueueContext queueContext,
String queueName,
CSQueue parent,
CSQueue old,
boolean isDynamic) |
| Modifier and Type | Method and Description |
|---|---|
void |
apply(org.apache.hadoop.yarn.api.records.Resource cluster,
ResourceCommitRequest<FiCaSchedulerApp,FiCaSchedulerNode> request) |
CSAssignment |
assignContainers(org.apache.hadoop.yarn.api.records.Resource clusterResource,
CandidateNodeSet<FiCaSchedulerNode> candidates,
ResourceLimits resourceLimits,
SchedulingMode schedulingMode)
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.
|
CSQueue |
createNewQueue(String childQueuePath,
boolean isLeaf) |
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.
|
ActiveUsersManager |
getAbstractUsersManager()
Get the
AbstractUsersManager for the queue. |
AutoCreatedQueueTemplate |
getAutoCreatedQueueTemplate() |
AbstractParentQueue.QueueCapacityType |
getCapacityConfigurationTypeForQueues(Collection<CSQueue> queues) |
List<CSQueue> |
getChildQueues()
Get child queues
|
List<CSQueue> |
getChildQueuesByTryLock()
Get child queues By tryLock.
|
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
|
QueueOrderingPolicy |
getQueueOrderingPolicy() |
List<org.apache.hadoop.yarn.api.records.QueueUserACLInfo> |
getQueueUserAclInfo(org.apache.hadoop.security.UserGroupInformation user)
Get queue ACLs for given
user. |
ResourceLimits |
getResourceLimitsOfChild(CSQueue child,
org.apache.hadoop.yarn.api.records.Resource clusterResource,
ResourceLimits parentLimits,
String nodePartition,
boolean netLimit) |
boolean |
hasChildQueues() |
boolean |
isEligibleForAutoDeletion()
Checks whether this queue is a dynamic queue and could be deleted.
|
boolean |
isEligibleForAutoQueueCreation()
Check whether this queue supports adding additional child queues
dynamically.
|
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 |
refreshAfterResourceCalculation(org.apache.hadoop.yarn.api.records.Resource clusterResource,
ResourceLimits resourceLimits) |
void |
reinitialize(CSQueue newlyParsedQueue,
org.apache.hadoop.yarn.api.records.Resource clusterResource)
Reinitialize the queue.
|
void |
removeChildQueue(CSQueue queue) |
protected void |
setDynamicQueueACLProperties() |
protected void |
setupQueueConfigs(org.apache.hadoop.yarn.api.records.Resource clusterResource)
Initialize queue properties that are based on configuration.
|
void |
stopQueue()
Stop 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.
|
void |
submitApplicationAttempt(FiCaSchedulerApp application,
String userName,
boolean isMoveApp)
Submit an application attempt to the queue.
|
String |
toString() |
void |
updateClusterResource(org.apache.hadoop.yarn.api.records.Resource clusterResource,
ResourceLimits resourceLimits)
Update the cluster resource for queues as we add/remove nodes
|
void |
updateClusterResourceLegacyMode(org.apache.hadoop.yarn.api.records.Resource clusterResource,
ResourceLimits resourceLimits) |
void |
validateSubmitApplication(org.apache.hadoop.yarn.api.records.ApplicationId applicationId,
String userName,
String queue)
Validate submitApplication api so that moveApplication do a pre-check.
|
accept, activateQueue, appFinished, assignContainers, checkConfigTypeIsAbsoluteResource, decPendingResource, decReservedResource, decUsedResource, getAbsoluteCapacity, getAbsoluteMaximumCapacity, getAbsoluteUsedCapacity, getAccessibleNodeLabels, getACLs, getCapacity, getCapacityConfigType, getCapacityOrWeightString, getConfiguredCapacityVector, getConfiguredMaxCapacityVector, getConfiguredNodeLabels, getDefaultApplicationLifetime, getDefaultApplicationPriority, getDefaultAppLifetimeWasSpecifiedInConfig, getDefaultNodeLabelExpression, getEffectiveCapacity, getEffectiveCapacityDown, getEffectiveMaxCapacity, getEffectiveMaxCapacityDown, getIntraQueuePreemptionDisabled, getIntraQueuePreemptionDisabledInHierarchy, getKillableContainers, getMaximumAbsoluteResource, getMaximumAllocation, getMaximumApplicationLifetime, getMaximumCapacity, getMaxParallelApps, getMetrics, getMinimumAbsoluteResource, getMinimumAllocation, getMultiNodeSortingPolicyName, getNodeLabelsForQueue, getNumContainers, getParent, getPreemptionDisabled, getPriority, getPrivilegedEntity, getQueueCapacities, getQueueContext, getQueueInfo, getQueueName, getQueuePath, getQueuePathObject, getQueueResourceQuotas, getQueueResourceUsage, getQueueShortName, getReadLock, getState, getTotalKillableResource, getUsedCapacity, getUsedResources, getUserWeights, getWriteLock, hasAccess, incPendingResource, incReservedResource, incUsedResource, isDynamicQueue, isInactiveDynamicQueue, isReservationsContinueLooking, overrideCapacityVectorsForSpecialQueues, parseAndSetDynamicTemplates, recoverDrainingState, releaseResource, setConfiguredMaxCapacityVector, setConfiguredMinCapacityVector, setDynamicQueue, setMaxParallelApps, setMultiNodeSortingPolicyName, setParent, setupConfigurableCapacities, updateAbsoluteCapacities, updateCapacityConfigType, updateConfigurableResourceLimits, updateQueueStatepublic AbstractParentQueue(CapacitySchedulerQueueContext queueContext, String queueName, CSQueue parent, CSQueue old) throws IOException
IOExceptionpublic AbstractParentQueue(CapacitySchedulerQueueContext queueContext, String queueName, CSQueue parent, CSQueue old, boolean isDynamic) throws IOException
IOExceptionprotected void setupQueueConfigs(org.apache.hadoop.yarn.api.records.Resource clusterResource)
throws IOException
AbstractCSQueuesetupQueueConfigs in class AbstractCSQueueclusterResource - overall resource of the clusterIOException - if configuration is set in a way that is inconsistentprotected void setDynamicQueueACLProperties()
setDynamicQueueACLProperties in class AbstractCSQueuepublic AbstractParentQueue.QueueCapacityType getCapacityConfigurationTypeForQueues(Collection<CSQueue> queues) throws IOException
IOExceptionpublic org.apache.hadoop.yarn.api.records.QueueInfo getQueueInfo(boolean includeChildQueues,
boolean recursive)
QueueincludeChildQueues - include child queues?recursive - recursively get child queue information?public List<org.apache.hadoop.yarn.api.records.QueueUserACLInfo> getQueueUserAclInfo(org.apache.hadoop.security.UserGroupInformation user)
Queueuser.user - usernamepublic CSQueue createNewQueue(String childQueuePath, boolean isLeaf) throws SchedulerDynamicEditException
SchedulerDynamicEditExceptionpublic void removeChildQueue(CSQueue queue) throws SchedulerDynamicEditException
SchedulerDynamicEditExceptionpublic boolean isEligibleForAutoQueueCreation()
public void reinitialize(CSQueue newlyParsedQueue, org.apache.hadoop.yarn.api.records.Resource clusterResource) throws IOException
CSQueuenewlyParsedQueue - new queue to re-initalize fromclusterResource - resources in the clusterIOException - an I/O exception has occurred.public void submitApplication(org.apache.hadoop.yarn.api.records.ApplicationId applicationId,
String user,
String queue)
throws org.apache.hadoop.security.AccessControlException
CSQueueapplicationId - the applicationId of the application being submitteduser - user who submitted the applicationqueue - queue to which the application is submittedorg.apache.hadoop.security.AccessControlException - if any acl violation is there.public void validateSubmitApplication(org.apache.hadoop.yarn.api.records.ApplicationId applicationId,
String userName,
String queue)
throws org.apache.hadoop.security.AccessControlException
CSQueuevalidateSubmitApplication in interface CSQueuevalidateSubmitApplication in class AbstractCSQueueapplicationId - Application IDuserName - User Namequeue - Queue Nameorg.apache.hadoop.security.AccessControlException - if any acl violation is there.public void submitApplicationAttempt(FiCaSchedulerApp application, String userName)
CSQueueapplication - application whose attempt is being submitted.userName - userName who submitted the application.public void submitApplicationAttempt(FiCaSchedulerApp application, String userName, boolean isMoveApp)
CSQueueapplication - application whose attempt is being submitteduserName - user who submitted the application attemptisMoveApp - is application being moved across the queuepublic void finishApplicationAttempt(FiCaSchedulerApp application, String queue)
CSQueueapplication - application attempt.queue - queue.public void finishApplication(org.apache.hadoop.yarn.api.records.ApplicationId application,
String user)
CSQueueapplication - applicationId.user - user who submitted the applicationpublic CSAssignment assignContainers(org.apache.hadoop.yarn.api.records.Resource clusterResource, CandidateNodeSet<FiCaSchedulerNode> candidates, ResourceLimits resourceLimits, SchedulingMode schedulingMode)
CSQueueclusterResource - the resource of the cluster.candidates - CandidateNodeSet the nodes that are considered
for the current placement.resourceLimits - how much overall resource of this queue can use.schedulingMode - Type of exclusive check when assign container on a
NodeManager, see SchedulingMode.public ResourceLimits getResourceLimitsOfChild(CSQueue child, org.apache.hadoop.yarn.api.records.Resource clusterResource, ResourceLimits parentLimits, String nodePartition, boolean netLimit)
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)
CSQueueclusterResource - the resource of the clusterapplication - application to which the container was assignednode - node on which the container completedrmContainer - completed container,
null if it was just a reservationcontainerStatus - ContainerStatus for the completed
containerevent - event to be sent to the containercompletedChildQueue - CSQueue to reinsert in childQueuessortQueues - indicates whether it should re-sort the queuespublic void refreshAfterResourceCalculation(org.apache.hadoop.yarn.api.records.Resource clusterResource,
ResourceLimits resourceLimits)
public void updateClusterResource(org.apache.hadoop.yarn.api.records.Resource clusterResource,
ResourceLimits resourceLimits)
CSQueueclusterResource - the current cluster resourceresourceLimits - the current ResourceLimitspublic void updateClusterResourceLegacyMode(org.apache.hadoop.yarn.api.records.Resource clusterResource,
ResourceLimits resourceLimits)
public boolean hasChildQueues()
public List<CSQueue> getChildQueues()
CSQueuepublic List<CSQueue> getChildQueuesByTryLock()
CSQueuepublic void recoverContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource,
SchedulerApplicationAttempt attempt,
RMContainer rmContainer)
QueueclusterResource - the resource of the clusterattempt - the application for which the container was allocatedrmContainer - the container that was recovered.public ActiveUsersManager getAbstractUsersManager()
CSQueueAbstractUsersManager for the queue.AbstractUsersManager for the queuepublic void collectSchedulerApplications(Collection<org.apache.hadoop.yarn.api.records.ApplicationAttemptId> apps)
CSQueueapps - the collection to add the applications topublic void attachContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource,
FiCaSchedulerApp application,
RMContainer rmContainer)
CSQueueclusterResource - the current cluster resourceapplication - application to which the container was assignedrmContainer - the container to attachpublic void detachContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource,
FiCaSchedulerApp application,
RMContainer rmContainer)
CSQueueclusterResource - the current cluster resourceapplication - application to which the container was assignedrmContainer - the container to detachpublic int getNumApplications()
CSQueuepublic void apply(org.apache.hadoop.yarn.api.records.Resource cluster,
ResourceCommitRequest<FiCaSchedulerApp,FiCaSchedulerNode> request)
public void stopQueue()
SchedulerQueuepublic QueueOrderingPolicy getQueueOrderingPolicy()
public boolean isEligibleForAutoDeletion()
AbstractCSQueueisEligibleForAutoDeletion in class AbstractCSQueuepublic AutoCreatedQueueTemplate getAutoCreatedQueueTemplate()
Copyright © 2008–2024 Apache Software Foundation. All rights reserved.