@InterfaceAudience.Private @InterfaceStability.Unstable public class SchedulerUtils extends Object
| Modifier and Type | Class and Description | 
|---|---|
| static class  | SchedulerUtils.MaxResourceValidationResultThis class contains invalid resource information along with its
 resource request. | 
| Modifier and Type | Field and Description | 
|---|---|
| static String | COMPLETED_APPLICATION | 
| static String | EXPIRED_CONTAINER | 
| static String | LOST_CONTAINER | 
| static String | PREEMPTED_CONTAINER | 
| static String | RELEASED_CONTAINER | 
| static String | UNRESERVED_CONTAINER | 
| static String | UPDATED_CONTAINER | 
| Constructor and Description | 
|---|
| SchedulerUtils() | 
| Modifier and Type | Method and Description | 
|---|---|
| static boolean | checkQueueLabelExpression(Set<String> queueLabels,
                         String labelExpression,
                         RMContext rmContext)Check queue label expression, check if node label in queue's
 node-label-expression existed in clusterNodeLabels if rmContext != null | 
| static org.apache.hadoop.yarn.api.records.ContainerStatus | createAbnormalContainerStatus(org.apache.hadoop.yarn.api.records.ContainerId containerId,
                             String diagnostics)Utility to create a  ContainerStatusduring exceptional
 circumstances. | 
| static org.apache.hadoop.yarn.api.records.ContainerStatus | createKilledContainerStatus(org.apache.hadoop.yarn.api.records.ContainerId containerId,
                           String diagnostics)Utility to create a  ContainerStatusfor killed containers. | 
| static RMContainer | createOpportunisticRmContainer(RMContext rmContext,
                              org.apache.hadoop.yarn.api.records.Container container,
                              boolean isRemotelyAllocated) | 
| static org.apache.hadoop.yarn.api.records.ContainerStatus | createPreemptedContainerStatus(org.apache.hadoop.yarn.api.records.ContainerId containerId,
                              String diagnostics)Utility to create a  ContainerStatusduring exceptional
 circumstances. | 
| static void | enforcePartitionExclusivity(org.apache.hadoop.yarn.api.records.ResourceRequest resReq,
                           Set<String> enforcedPartitions,
                           String appLabel)If RM should enforce partition exclusivity for enforced partition "x":
 1) If request is "x" and app label is not "x",
    override request to app's label. | 
| static org.apache.hadoop.yarn.api.records.Resource | getNormalizedResource(org.apache.hadoop.yarn.api.records.Resource ask,
                     org.apache.hadoop.yarn.util.resource.ResourceCalculator resourceCalculator,
                     org.apache.hadoop.yarn.api.records.Resource minimumResource,
                     org.apache.hadoop.yarn.api.records.Resource maximumResource,
                     org.apache.hadoop.yarn.api.records.Resource incrementResource)Utility method to normalize a resource request, by ensuring that the
 requested memory is a multiple of increment resource and is not zero. | 
| static boolean | hasPendingResourceRequest(org.apache.hadoop.yarn.util.resource.ResourceCalculator rc,
                         ResourceUsage usage,
                         String nodePartition,
                         org.apache.hadoop.yarn.api.records.Resource cluster,
                         SchedulingMode schedulingMode) | 
| static void | normalizeAndValidateRequest(org.apache.hadoop.yarn.api.records.ResourceRequest resReq,
                           org.apache.hadoop.yarn.api.records.Resource maximumAllocation,
                           String queueName,
                           boolean isRecovery,
                           RMContext rmContext,
                           org.apache.hadoop.yarn.api.records.QueueInfo queueInfo,
                           boolean nodeLabelsEnabled) | 
| static void | normalizeAndValidateRequest(org.apache.hadoop.yarn.api.records.ResourceRequest resReq,
                           org.apache.hadoop.yarn.api.records.Resource maximumAllocation,
                           String queueName,
                           RMContext rmContext,
                           org.apache.hadoop.yarn.api.records.QueueInfo queueInfo,
                           boolean nodeLabelsEnabled) | 
| static void | normalizeRequest(org.apache.hadoop.yarn.api.records.ResourceRequest ask,
                org.apache.hadoop.yarn.util.resource.ResourceCalculator resourceCalculator,
                org.apache.hadoop.yarn.api.records.Resource minimumResource,
                org.apache.hadoop.yarn.api.records.Resource maximumResource)Utility method to normalize a resource request, by ensuring that the
 requested memory is a multiple of minMemory and is not zero. | 
| static org.apache.hadoop.yarn.security.AccessType | toAccessType(org.apache.hadoop.yarn.api.records.QueueACL acl) | 
| static SchedulerUtils.MaxResourceValidationResult | validateResourceRequestsAgainstQueueMaxResource(org.apache.hadoop.yarn.api.records.ResourceRequest resReq,
                                               org.apache.hadoop.yarn.api.records.Resource availableResource) | 
public static final String RELEASED_CONTAINER
public static final String UPDATED_CONTAINER
public static final String LOST_CONTAINER
public static final String PREEMPTED_CONTAINER
public static final String COMPLETED_APPLICATION
public static final String EXPIRED_CONTAINER
public static final String UNRESERVED_CONTAINER
public static org.apache.hadoop.yarn.api.records.ContainerStatus createAbnormalContainerStatus(org.apache.hadoop.yarn.api.records.ContainerId containerId,
                                                                                               String diagnostics)
ContainerStatus during exceptional
 circumstances.containerId - ContainerId of returned/released/lost container.diagnostics - diagnostic messageContainerStatus for an returned/released/lost 
         containerpublic static org.apache.hadoop.yarn.api.records.ContainerStatus createKilledContainerStatus(org.apache.hadoop.yarn.api.records.ContainerId containerId,
                                                                                             String diagnostics)
ContainerStatus for killed containers.containerId - ContainerId of the killed container.diagnostics - diagnostic messageContainerStatus for a killed containerpublic static org.apache.hadoop.yarn.api.records.ContainerStatus createPreemptedContainerStatus(org.apache.hadoop.yarn.api.records.ContainerId containerId,
                                                                                                String diagnostics)
ContainerStatus during exceptional
 circumstances.containerId - ContainerId of returned/released/lost container.diagnostics - diagnostic messageContainerStatus for an returned/released/lost
         containerpublic static void normalizeRequest(org.apache.hadoop.yarn.api.records.ResourceRequest ask,
                                    org.apache.hadoop.yarn.util.resource.ResourceCalculator resourceCalculator,
                                    org.apache.hadoop.yarn.api.records.Resource minimumResource,
                                    org.apache.hadoop.yarn.api.records.Resource maximumResource)
public static org.apache.hadoop.yarn.api.records.Resource getNormalizedResource(org.apache.hadoop.yarn.api.records.Resource ask,
                                                                                org.apache.hadoop.yarn.util.resource.ResourceCalculator resourceCalculator,
                                                                                org.apache.hadoop.yarn.api.records.Resource minimumResource,
                                                                                org.apache.hadoop.yarn.api.records.Resource maximumResource,
                                                                                org.apache.hadoop.yarn.api.records.Resource incrementResource)
public static void normalizeAndValidateRequest(org.apache.hadoop.yarn.api.records.ResourceRequest resReq,
                                               org.apache.hadoop.yarn.api.records.Resource maximumAllocation,
                                               String queueName,
                                               boolean isRecovery,
                                               RMContext rmContext,
                                               org.apache.hadoop.yarn.api.records.QueueInfo queueInfo,
                                               boolean nodeLabelsEnabled)
                                        throws org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException
org.apache.hadoop.yarn.exceptions.InvalidResourceRequestExceptionpublic static void normalizeAndValidateRequest(org.apache.hadoop.yarn.api.records.ResourceRequest resReq,
                                               org.apache.hadoop.yarn.api.records.Resource maximumAllocation,
                                               String queueName,
                                               RMContext rmContext,
                                               org.apache.hadoop.yarn.api.records.QueueInfo queueInfo,
                                               boolean nodeLabelsEnabled)
                                        throws org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException
org.apache.hadoop.yarn.exceptions.InvalidResourceRequestExceptionpublic static void enforcePartitionExclusivity(org.apache.hadoop.yarn.api.records.ResourceRequest resReq,
                                               Set<String> enforcedPartitions,
                                               String appLabel)
resReq - resource requestenforcedPartitions - list of exclusive enforced partitionsappLabel - app's node label expressionpublic static SchedulerUtils.MaxResourceValidationResult validateResourceRequestsAgainstQueueMaxResource(org.apache.hadoop.yarn.api.records.ResourceRequest resReq, org.apache.hadoop.yarn.api.records.Resource availableResource) throws org.apache.hadoop.yarn.exceptions.SchedulerInvalidResoureRequestException
org.apache.hadoop.yarn.exceptions.SchedulerInvalidResoureRequestExceptionpublic static boolean checkQueueLabelExpression(Set<String> queueLabels, String labelExpression, RMContext rmContext)
public static org.apache.hadoop.yarn.security.AccessType toAccessType(org.apache.hadoop.yarn.api.records.QueueACL acl)
@InterfaceAudience.Private
public static boolean hasPendingResourceRequest(org.apache.hadoop.yarn.util.resource.ResourceCalculator rc,
                                                                           ResourceUsage usage,
                                                                           String nodePartition,
                                                                           org.apache.hadoop.yarn.api.records.Resource cluster,
                                                                           SchedulingMode schedulingMode)
public static RMContainer createOpportunisticRmContainer(RMContext rmContext, org.apache.hadoop.yarn.api.records.Container container, boolean isRemotelyAllocated)
Copyright © 2008–2023 Apache Software Foundation. All rights reserved.