Class AbstractLeafQueue
java.lang.Object
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractLeafQueue
- All Implemented Interfaces:
CSQueue,Queue,SchedulerQueue<CSQueue>
- Direct Known Subclasses:
AbstractAutoCreatedLeafQueue,LeafQueue
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue
AbstractCSQueue.CapacityConfigType -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected intFields inherited from class org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue
activitiesManager, authorizer, capacityConfigType, configuredCapacityVectors, configuredMaxCapacityVectors, queueAllocationSettings, queueContext, queueEntity, queueNodeLabelsSettings, queuePath, readLock, writeLock -
Constructor Summary
ConstructorsConstructorDescriptionAbstractLeafQueue(CapacitySchedulerQueueContext queueContext, String queueName, CSQueue parent, CSQueue old) AbstractLeafQueue(CapacitySchedulerQueueContext queueContext, String queueName, CSQueue parent, CSQueue old, boolean isDynamic) -
Method Summary
Modifier and TypeMethodDescriptionbooleanaccept(org.apache.hadoop.yarn.api.records.Resource cluster, ResourceCommitRequest<FiCaSchedulerApp, FiCaSchedulerNode> request) Checks whether this queue could accept the container allocation request.protected voidvoidapply(org.apache.hadoop.yarn.api.records.Resource cluster, ResourceCommitRequest<FiCaSchedulerApp, FiCaSchedulerNode> request) assignContainers(org.apache.hadoop.yarn.api.records.Resource clusterResource, CandidateNodeSet<FiCaSchedulerNode> candidates, ResourceLimits currentResourceLimits, SchedulingMode schedulingMode) Assign containers to applications in the queue or it's children (if any).voidattachContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application, RMContainer rmContainer) Attach a container to this queueorg.apache.hadoop.yarn.api.records.Resourceorg.apache.hadoop.yarn.api.records.ResourcecalculateAndGetAMResourceLimitPerPartition(String nodePartition) protected booleancanAssignToUser(org.apache.hadoop.yarn.api.records.Resource clusterResource, String userName, org.apache.hadoop.yarn.api.records.Resource limit, FiCaSchedulerApp application, String nodePartition, ResourceLimits currentResourceLimits) voidcollectSchedulerApplications(Collection<org.apache.hadoop.yarn.api.records.ApplicationAttemptId> apps) Adds all applications in the queue and its subqueues to the given collection.voidcompletedContainer(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 childQueue, boolean sortQueues) A container assigned to the queue has completed.voiddecAMUsedResource(String nodeLabel, org.apache.hadoop.yarn.api.records.Resource resourceToDec, SchedulerApplicationAttempt application) voiddecUsedResource(String nodeLabel, org.apache.hadoop.yarn.api.records.Resource resourceToDec, SchedulerApplicationAttempt application) When partition of node updated, we will update queue's resource usage if it has container(s) running on that.voiddetachContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application, RMContainer rmContainer) Detach a container from this queuevoidfinishApplication(org.apache.hadoop.yarn.api.records.ApplicationId application, String user) An application submitted to this queue has finished.voidfinishApplicationAttempt(FiCaSchedulerApp application, String queue) An application attempt submitted to this queue has finished.Get theAbstractUsersManagerfor the queue.Obtain (read-only) collection of all applications.Get all valid users in this queue.org.apache.hadoop.yarn.api.records.Resourceorg.apache.hadoop.yarn.api.records.ResourcegetAMResourceLimitPerPartition(String nodePartition) Obtain (read-only) collection of active applications.Get child queuesGet child queues By tryLock.org.apache.hadoop.yarn.api.records.PriorityGet the Default Application Priority for this queueprotected Stringprotected org.apache.hadoop.yarn.api.records.ResourcegetHeadroom(UsersManager.User user, org.apache.hadoop.yarn.api.records.Resource queueCurrentLimit, org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application) protected org.apache.hadoop.yarn.api.records.ResourcegetHeadroom(UsersManager.User user, org.apache.hadoop.yarn.api.records.Resource queueCurrentLimit, org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application, String partition) floatUsed only by tests.intintfloatUsed only by tests.intintintintGet the number of applications in the queue.intintgetOrCreateUser(String userName) Obtain (read-only) collection of pending applications.org.apache.hadoop.yarn.api.records.QueueInfogetQueueInfo(boolean includeChildQueues, boolean recursive) Get queue informationList<org.apache.hadoop.yarn.api.records.QueueUserACLInfo>getQueueUserAclInfo(org.apache.hadoop.security.UserGroupInformation user) Get queue ACLs for givenuser.intbooleanorg.apache.hadoop.yarn.api.records.ResourcegetResourceLimitForActiveUsers(String userName, org.apache.hadoop.yarn.api.records.Resource clusterResource, String nodePartition, SchedulingMode schedulingMode) org.apache.hadoop.yarn.api.records.ResourcegetResourceLimitForAllUsers(String userName, org.apache.hadoop.yarn.api.records.Resource clusterResource, String nodePartition, SchedulingMode schedulingMode) org.apache.hadoop.yarn.api.records.ResourcegetTotalPendingResourcesConsideringUserLimit(org.apache.hadoop.yarn.api.records.Resource clusterResources, String partition, boolean deductReservedFromPending) Get total pending resource considering user limit for the leaf queue.org.apache.hadoop.yarn.api.records.Resourceorg.apache.hadoop.yarn.api.records.ResourcegetUserAMResourceLimitPerPartition(String nodePartition, String userName) floatfloatvoidincAMUsedResource(String nodeLabel, org.apache.hadoop.yarn.api.records.Resource resourceToInc, SchedulerApplicationAttempt application) voidincUsedResource(String nodeLabel, org.apache.hadoop.yarn.api.records.Resource resourceToInc, SchedulerApplicationAttempt application) When partition of node updated, we will update queue's resource usage if it has container(s) running on that.booleanChecks whether this queue is a dynamic queue and could be deleted.protected voidSet properties specific to dynamic queues.voidrecalculateQueueUsageRatio(org.apache.hadoop.yarn.api.records.Resource clusterResource, String nodePartition) Recalculate QueueUsage Ratio.voidrecoverContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource, SchedulerApplicationAttempt attempt, RMContainer rmContainer) Recover the state of the queue for a given container.voidrefreshAfterResourceCalculation(org.apache.hadoop.yarn.api.records.Resource clusterResource, ResourceLimits resourceLimits) voidreinitialize(CSQueue newlyParsedQueue, org.apache.hadoop.yarn.api.records.Resource clusterResource) Reinitialize the queue.voidsetAbsoluteCapacity(float absoluteCapacity) voidsetAbsoluteCapacity(String nodeLabel, float absoluteCapacity) voidsetCapacity(float capacity) voidsetCapacity(String nodeLabel, float capacity) protected voidvoidsetMaxAMResourcePerQueuePercent(float maxAMResourcePerQueuePercent) voidsetMaxApplications(int maxApplications) voidsetMaxApplicationsPerUser(int maxApplicationsPerUser) protected voidsetupQueueConfigs(org.apache.hadoop.yarn.api.records.Resource clusterResource) Initialize queue properties that are based on configuration.voidStop the queue.voidsubmitApplication(org.apache.hadoop.yarn.api.records.ApplicationId applicationId, String userName, String queue) Submit a new application to the queue.voidsubmitApplicationAttempt(FiCaSchedulerApp application, String userName) Submit an application attempt to the queue.voidsubmitApplicationAttempt(FiCaSchedulerApp application, String userName, boolean isMoveApp) Submit an application attempt to the queue.toString()voidupdateApplicationPriority(SchedulerApplication<FiCaSchedulerApp> app, org.apache.hadoop.yarn.api.records.Priority newAppPriority) voidupdateClusterResource(org.apache.hadoop.yarn.api.records.Resource clusterResource, ResourceLimits currentResourceLimits) Update the cluster resource for queues as we add/remove nodesvoidupdateClusterResourceLegacyMode(org.apache.hadoop.yarn.api.records.Resource clusterResource, ResourceLimits currentResourceLimits) voidvalidateSubmitApplication(org.apache.hadoop.yarn.api.records.ApplicationId applicationId, String userName, String queue) Validate submitApplication api so that moveApplication do a pre-check.Methods inherited from class org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue
activateQueue, appFinished, assignContainers, checkConfigTypeIsAbsoluteResource, decPendingResource, decReservedResource, getAbsoluteCapacity, getAbsoluteMaximumCapacity, getAbsoluteUsedCapacity, getAccessibleNodeLabels, getACLs, getCapacity, getCapacityConfigType, getCapacityOrWeightString, getConfiguredCapacityVector, getConfiguredMaxCapacityVector, getConfiguredNodeLabels, getDefaultApplicationLifetime, getDefaultAppLifetimeWasSpecifiedInConfig, getDefaultNodeLabelExpression, getEffectiveCapacity, getEffectiveCapacityDown, getEffectiveMaxCapacity, getEffectiveMaxCapacityDown, getIntraQueuePreemptionDisabled, getIntraQueuePreemptionDisabledInHierarchy, getKillableContainers, getMaximumAbsoluteResource, getMaximumAllocation, getMaximumApplicationLifetime, getMaximumCapacity, getMaxParallelApps, getMetrics, getMinimumAbsoluteResource, getMinimumAllocation, getMultiNodeSortingPolicyClassName, 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, isDynamicQueue, isInactiveDynamicQueue, isReservationsContinueLooking, overrideCapacityVectorsForSpecialQueues, recoverDrainingState, releaseResource, setConfiguredMaxCapacityVector, setConfiguredMinCapacityVector, setDynamicQueue, setMaxParallelApps, setMultiNodeSortingPolicyClassName, setParent, setupConfigurableCapacities, updateAbsoluteCapacities, updateCapacityConfigType, updateConfigurableResourceLimits, updateQueueState
-
Field Details
-
maxApplications
protected int maxApplications -
maxApplicationsPerUser
protected volatile int maxApplicationsPerUser
-
-
Constructor Details
-
AbstractLeafQueue
public AbstractLeafQueue(CapacitySchedulerQueueContext queueContext, String queueName, CSQueue parent, CSQueue old) throws IOException - Throws:
IOException
-
AbstractLeafQueue
public AbstractLeafQueue(CapacitySchedulerQueueContext queueContext, String queueName, CSQueue parent, CSQueue old, boolean isDynamic) throws IOException - Throws:
IOException
-
-
Method Details
-
setupQueueConfigs
protected void setupQueueConfigs(org.apache.hadoop.yarn.api.records.Resource clusterResource) throws IOException Description copied from class:AbstractCSQueueInitialize queue properties that are based on configuration.- Overrides:
setupQueueConfigsin classAbstractCSQueue- Parameters:
clusterResource- overall resource of the cluster- Throws:
IOException- if configuration is set in a way that is inconsistent
-
getMinimumAllocationFactor
@Private public float getMinimumAllocationFactor()Used only by tests.- Returns:
- minimumAllocationFactor.
-
getMaxAMResourcePerQueuePercent
@Private public float getMaxAMResourcePerQueuePercent()Used only by tests.- Returns:
- maxAMResourcePerQueuePercent.
-
getMaxApplications
public int getMaxApplications() -
getMaxApplicationsPerUser
public int getMaxApplicationsPerUser() -
getUsersManager
- Returns:
- UsersManager instance.
-
getAbstractUsersManager
Description copied from interface:CSQueueGet theAbstractUsersManagerfor the queue.- Returns:
- the
AbstractUsersManagerfor the queue
-
getChildQueues
Description copied from interface:CSQueueGet child queues- Returns:
- child queues
-
getChildQueuesByTryLock
Description copied from interface:CSQueueGet child queues By tryLock.- Returns:
- child queues
-
getNumApplications
public int getNumApplications()Description copied from interface:CSQueueGet the number of applications in the queue.- Returns:
- number of applications
-
getNumPendingApplications
public int getNumPendingApplications() -
getNumActiveApplications
public int getNumActiveApplications() -
getNumPendingApplications
-
getNumActiveApplications
-
getUserLimit
@Private public float getUserLimit() -
getUserLimitFactor
@Private public float getUserLimitFactor() -
getQueueInfo
public org.apache.hadoop.yarn.api.records.QueueInfo getQueueInfo(boolean includeChildQueues, boolean recursive) Description copied from interface:QueueGet 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:QueueGet queue ACLs for givenuser.- Parameters:
user- username- Returns:
- queue ACLs for user
-
toString
-
getExtendedCapacityOrWeightString
-
getUser
-
getOrCreateUser
-
getPriorityACLs
-
reinitialize
public void reinitialize(CSQueue newlyParsedQueue, org.apache.hadoop.yarn.api.records.Resource clusterResource) throws IOException Description copied from interface:CSQueueReinitialize the queue.- Parameters:
newlyParsedQueue- new queue to re-initalize fromclusterResource- resources in the cluster- Throws:
IOException- an I/O exception has occurred.
-
submitApplicationAttempt
Description copied from interface:CSQueueSubmit an application attempt to the queue.- Parameters:
application- application whose attempt is being submitted.userName- userName who submitted the application.
-
submitApplicationAttempt
public void submitApplicationAttempt(FiCaSchedulerApp application, String userName, boolean isMoveApp) Description copied from interface:CSQueueSubmit an application attempt to the queue.- Parameters:
application- application whose attempt is being submitteduserName- user who submitted the application attemptisMoveApp- is application being moved across the queue
-
submitApplication
public void submitApplication(org.apache.hadoop.yarn.api.records.ApplicationId applicationId, String userName, String queue) throws org.apache.hadoop.security.AccessControlException Description copied from interface:CSQueueSubmit a new application to the queue.- Parameters:
applicationId- the applicationId of the application being submitteduserName- user who submitted the applicationqueue- queue to which the application is submitted- Throws:
org.apache.hadoop.security.AccessControlException- if any acl violation is there.
-
validateSubmitApplication
public void validateSubmitApplication(org.apache.hadoop.yarn.api.records.ApplicationId applicationId, String userName, String queue) throws org.apache.hadoop.security.AccessControlException Description copied from interface:CSQueueValidate submitApplication api so that moveApplication do a pre-check.- Specified by:
validateSubmitApplicationin interfaceCSQueue- Overrides:
validateSubmitApplicationin classAbstractCSQueue- Parameters:
applicationId- Application IDuserName- User Namequeue- Queue Name- Throws:
org.apache.hadoop.security.AccessControlException- if any acl violation is there.
-
getAMResourceLimit
public org.apache.hadoop.yarn.api.records.Resource getAMResourceLimit() -
getAMResourceLimitPerPartition
public org.apache.hadoop.yarn.api.records.Resource getAMResourceLimitPerPartition(String nodePartition) -
calculateAndGetAMResourceLimit
@VisibleForTesting public org.apache.hadoop.yarn.api.records.Resource calculateAndGetAMResourceLimit() -
getUserAMResourceLimit
@VisibleForTesting public org.apache.hadoop.yarn.api.records.Resource getUserAMResourceLimit() -
getUserAMResourceLimitPerPartition
-
calculateAndGetAMResourceLimitPerPartition
public org.apache.hadoop.yarn.api.records.Resource calculateAndGetAMResourceLimitPerPartition(String nodePartition) -
activateApplications
protected void activateApplications() -
finishApplication
public void finishApplication(org.apache.hadoop.yarn.api.records.ApplicationId application, String user) Description copied from interface:CSQueueAn application submitted to this queue has finished.- Parameters:
application- applicationId.user- user who submitted the application
-
finishApplicationAttempt
Description copied from interface:CSQueueAn application attempt submitted to this queue has finished.- Parameters:
application- application attempt.queue- queue.
-
assignContainers
public CSAssignment assignContainers(org.apache.hadoop.yarn.api.records.Resource clusterResource, CandidateNodeSet<FiCaSchedulerNode> candidates, ResourceLimits currentResourceLimits, SchedulingMode schedulingMode) Description copied from interface:CSQueueAssign containers to applications in the queue or it's children (if any).- Parameters:
clusterResource- the resource of the cluster.candidates-CandidateNodeSetthe nodes that are considered for the current placement.currentResourceLimits- how much overall resource of this queue can use.schedulingMode- Type of exclusive check when assign container on a NodeManager, seeSchedulingMode.- Returns:
- the assignment
-
accept
public boolean accept(org.apache.hadoop.yarn.api.records.Resource cluster, ResourceCommitRequest<FiCaSchedulerApp, FiCaSchedulerNode> request) Description copied from class:AbstractCSQueueChecks whether this queue could accept the container allocation request.- Specified by:
acceptin interfaceCSQueue- Overrides:
acceptin classAbstractCSQueue- Parameters:
cluster- overall cluster resourcerequest- container allocation request- Returns:
- true if queue could accept the container allocation request, false otherwise
-
apply
public void apply(org.apache.hadoop.yarn.api.records.Resource cluster, ResourceCommitRequest<FiCaSchedulerApp, FiCaSchedulerNode> request) -
getHeadroom
protected org.apache.hadoop.yarn.api.records.Resource getHeadroom(UsersManager.User user, org.apache.hadoop.yarn.api.records.Resource queueCurrentLimit, org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application) -
getHeadroom
protected org.apache.hadoop.yarn.api.records.Resource getHeadroom(UsersManager.User user, org.apache.hadoop.yarn.api.records.Resource queueCurrentLimit, org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application, String partition) -
getNodeLocalityDelay
@Lock(org.apache.hadoop.yarn.server.utils.Lock.NoLock.class) public int getNodeLocalityDelay() -
getRackLocalityAdditionalDelay
@Lock(org.apache.hadoop.yarn.server.utils.Lock.NoLock.class) public int getRackLocalityAdditionalDelay() -
getRackLocalityFullReset
@Lock(org.apache.hadoop.yarn.server.utils.Lock.NoLock.class) public boolean getRackLocalityFullReset() -
getResourceLimitForActiveUsers
public org.apache.hadoop.yarn.api.records.Resource getResourceLimitForActiveUsers(String userName, org.apache.hadoop.yarn.api.records.Resource clusterResource, String nodePartition, SchedulingMode schedulingMode) - Parameters:
userName- Name of user who has submitted one/more app to given queue.clusterResource- total cluster resourcenodePartition- partition nameschedulingMode- scheduling mode RESPECT_PARTITION_EXCLUSIVITY/IGNORE_PARTITION_EXCLUSIVITY- Returns:
- Computed User Limit
-
getResourceLimitForAllUsers
public org.apache.hadoop.yarn.api.records.Resource getResourceLimitForAllUsers(String userName, org.apache.hadoop.yarn.api.records.Resource clusterResource, String nodePartition, SchedulingMode schedulingMode) - Parameters:
userName- Name of user who has submitted one/more app to given queue.clusterResource- total cluster resourcenodePartition- partition nameschedulingMode- scheduling mode RESPECT_PARTITION_EXCLUSIVITY/IGNORE_PARTITION_EXCLUSIVITY- Returns:
- Computed User Limit
-
canAssignToUser
@Private protected boolean canAssignToUser(org.apache.hadoop.yarn.api.records.Resource clusterResource, String userName, org.apache.hadoop.yarn.api.records.Resource limit, FiCaSchedulerApp application, String nodePartition, ResourceLimits currentResourceLimits) -
parseAndSetDynamicTemplates
protected void parseAndSetDynamicTemplates()Description copied from class:AbstractCSQueueSet properties specific to dynamic queues.- Overrides:
parseAndSetDynamicTemplatesin classAbstractCSQueue
-
setDynamicQueueACLProperties
protected void setDynamicQueueACLProperties()- Overrides:
setDynamicQueueACLPropertiesin classAbstractCSQueue
-
recalculateQueueUsageRatio
public void recalculateQueueUsageRatio(org.apache.hadoop.yarn.api.records.Resource clusterResource, String nodePartition) Recalculate QueueUsage Ratio.- Parameters:
clusterResource- Total Cluster ResourcenodePartition- Partition
-
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 childQueue, boolean sortQueues) Description copied from interface:CSQueueA container assigned to the queue has completed.- Parameters:
clusterResource- the resource of the clusterapplication- application to which the container was assignednode- node on which the container completedrmContainer- completed container,nullif it was just a reservationcontainerStatus-ContainerStatusfor the completed containerevent- event to be sent to the containerchildQueue-CSQueueto reinsert in childQueuessortQueues- indicates whether it should re-sort the queues
-
refreshAfterResourceCalculation
public void refreshAfterResourceCalculation(org.apache.hadoop.yarn.api.records.Resource clusterResource, ResourceLimits resourceLimits) -
updateClusterResource
public void updateClusterResource(org.apache.hadoop.yarn.api.records.Resource clusterResource, ResourceLimits currentResourceLimits) Description copied from interface:CSQueueUpdate the cluster resource for queues as we add/remove nodes- Parameters:
clusterResource- the current cluster resourcecurrentResourceLimits- the current ResourceLimits
-
updateClusterResourceLegacyMode
public void updateClusterResourceLegacyMode(org.apache.hadoop.yarn.api.records.Resource clusterResource, ResourceLimits currentResourceLimits) -
incUsedResource
public void incUsedResource(String nodeLabel, org.apache.hadoop.yarn.api.records.Resource resourceToInc, SchedulerApplicationAttempt application) Description copied from interface:CSQueueWhen partition of node updated, we will update queue's resource usage if it has container(s) running on that.- Specified by:
incUsedResourcein interfaceCSQueue- Overrides:
incUsedResourcein classAbstractCSQueue- Parameters:
nodeLabel- node label.resourceToInc- resource.application- application.
-
decUsedResource
public void decUsedResource(String nodeLabel, org.apache.hadoop.yarn.api.records.Resource resourceToDec, SchedulerApplicationAttempt application) Description copied from interface:CSQueueWhen partition of node updated, we will update queue's resource usage if it has container(s) running on that.- Specified by:
decUsedResourcein interfaceCSQueue- Overrides:
decUsedResourcein classAbstractCSQueue- Parameters:
nodeLabel- node label.resourceToDec- resource.application- application.
-
incAMUsedResource
public void incAMUsedResource(String nodeLabel, org.apache.hadoop.yarn.api.records.Resource resourceToInc, SchedulerApplicationAttempt application) -
decAMUsedResource
public void decAMUsedResource(String nodeLabel, org.apache.hadoop.yarn.api.records.Resource resourceToDec, SchedulerApplicationAttempt application) -
recoverContainer
public void recoverContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource, SchedulerApplicationAttempt attempt, RMContainer rmContainer) Description copied from interface:QueueRecover the state of the queue for a given container.- Parameters:
clusterResource- the resource of the clusterattempt- the application for which the container was allocatedrmContainer- the container that was recovered.
-
getPendingApplications
Obtain (read-only) collection of pending applications.- Returns:
- collection of pending applications.
-
getApplications
Obtain (read-only) collection of active applications.- Returns:
- collection of active applications.
-
getAllApplications
Obtain (read-only) collection of all applications.- Returns:
- collection of all applications.
-
getTotalPendingResourcesConsideringUserLimit
public org.apache.hadoop.yarn.api.records.Resource getTotalPendingResourcesConsideringUserLimit(org.apache.hadoop.yarn.api.records.Resource clusterResources, String partition, boolean deductReservedFromPending) Get total pending resource considering user limit for the leaf queue. This will be used for calculating pending resources in the preemption monitor. Consider the headroom for each user in the queue. Total pending for the queue = sum(for each user(min((user's headroom), sum(user's pending requests)))) NOTE:- Parameters:
clusterResources- clusterResourcepartition- node partitiondeductReservedFromPending- When a container is reserved in CS, pending resource will not be deducted. This could lead to double accounting when doing preemption: In normal cases, we should deduct reserved resource from pending to avoid excessive preemption.- Returns:
- Total pending resource considering user limit
-
collectSchedulerApplications
public void collectSchedulerApplications(Collection<org.apache.hadoop.yarn.api.records.ApplicationAttemptId> apps) Description copied from interface:CSQueueAdds 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:CSQueueAttach a container to this queue- Parameters:
clusterResource- the current cluster resourceapplication- application to which the container was assignedrmContainer- the container to attach
-
detachContainer
public void detachContainer(org.apache.hadoop.yarn.api.records.Resource clusterResource, FiCaSchedulerApp application, RMContainer rmContainer) Description copied from interface:CSQueueDetach a container from this queue- Parameters:
clusterResource- the current cluster resourceapplication- application to which the container was assignedrmContainer- the container to detach
-
getIgnoreExclusivityRMContainers
- Returns:
- all ignored partition exclusivity RMContainers in the LeafQueue, this will be used by preemption policy.
-
setCapacity
public void setCapacity(float capacity) -
setCapacity
-
setAbsoluteCapacity
public void setAbsoluteCapacity(float absoluteCapacity) -
setAbsoluteCapacity
-
setMaxApplicationsPerUser
public void setMaxApplicationsPerUser(int maxApplicationsPerUser) -
setMaxApplications
public void setMaxApplications(int maxApplications) -
setMaxAMResourcePerQueuePercent
public void setMaxAMResourcePerQueuePercent(float maxAMResourcePerQueuePercent) -
getOrderingPolicy
-
getDefaultApplicationPriority
public org.apache.hadoop.yarn.api.records.Priority getDefaultApplicationPriority()Description copied from interface:QueueGet the Default Application Priority for this queue- Specified by:
getDefaultApplicationPriorityin interfaceQueue- Overrides:
getDefaultApplicationPriorityin classAbstractCSQueue- Returns:
- default application priority
-
updateApplicationPriority
public void updateApplicationPriority(SchedulerApplication<FiCaSchedulerApp> app, org.apache.hadoop.yarn.api.records.Priority newAppPriority) -
getPendingAppsOrderingPolicy
-
stopQueue
public void stopQueue()Description copied from interface:SchedulerQueueStop the queue. -
getAllUsers
Get all valid users in this queue.- Returns:
- user list
-
isEligibleForAutoDeletion
public boolean isEligibleForAutoDeletion()Description copied from class:AbstractCSQueueChecks whether this queue is a dynamic queue and could be deleted.- Overrides:
isEligibleForAutoDeletionin classAbstractCSQueue- Returns:
- true if the dynamic queue could be deleted, false otherwise
-