public class CapacitySchedulerPreemptionUtils extends Object
Constructor and Description |
---|
CapacitySchedulerPreemptionUtils() |
Modifier and Type | Method and Description |
---|---|
protected static void |
addToPreemptMap(Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> preemptMap,
Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> curCandidates,
org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId,
RMContainer containerToPreempt) |
static void |
deductPreemptableResourcesBasedSelectedCandidates(CapacitySchedulerPreemptionContext context,
Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> selectedCandidates) |
static Map<String,org.apache.hadoop.yarn.api.records.Resource> |
getResToObtainByPartitionForLeafQueue(CapacitySchedulerPreemptionContext context,
String queueName,
org.apache.hadoop.yarn.api.records.Resource clusterResource) |
static boolean |
isContainerAlreadySelected(RMContainer container,
Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> selectedCandidates) |
static boolean |
tryPreemptContainerAndDeductResToObtain(org.apache.hadoop.yarn.util.resource.ResourceCalculator rc,
CapacitySchedulerPreemptionContext context,
Map<String,org.apache.hadoop.yarn.api.records.Resource> resourceToObtainByPartitions,
RMContainer rmContainer,
org.apache.hadoop.yarn.api.records.Resource clusterResource,
Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> preemptMap,
Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> curCandidates,
org.apache.hadoop.yarn.api.records.Resource totalPreemptionAllowed,
boolean conservativeDRF)
Invoke this method to preempt container based on resToObtain.
|
public static Map<String,org.apache.hadoop.yarn.api.records.Resource> getResToObtainByPartitionForLeafQueue(CapacitySchedulerPreemptionContext context, String queueName, org.apache.hadoop.yarn.api.records.Resource clusterResource)
public static boolean isContainerAlreadySelected(RMContainer container, Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> selectedCandidates)
public static void deductPreemptableResourcesBasedSelectedCandidates(CapacitySchedulerPreemptionContext context, Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> selectedCandidates)
public static boolean tryPreemptContainerAndDeductResToObtain(org.apache.hadoop.yarn.util.resource.ResourceCalculator rc, CapacitySchedulerPreemptionContext context, Map<String,org.apache.hadoop.yarn.api.records.Resource> resourceToObtainByPartitions, RMContainer rmContainer, org.apache.hadoop.yarn.api.records.Resource clusterResource, Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> preemptMap, Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> curCandidates, org.apache.hadoop.yarn.api.records.Resource totalPreemptionAllowed, boolean conservativeDRF)
rc
- resource calculatorcontext
- preemption contextresourceToObtainByPartitions
- map to hold resource to obtain per partitionrmContainer
- containerclusterResource
- total resourcepreemptMap
- map to hold preempted containerstotalPreemptionAllowed
- total preemption allowed per roundconservativeDRF
- should we do conservativeDRF preemption or not.
When true:
stop preempt container when any major resource type
<= 0 for to-preempt.
This is default preemption behavior of intra-queue preemption
When false:
stop preempt container when: all major resource type
<= 0 for to-preempt.
This is default preemption behavior of inter-queue preemptionresourceToObtainByPartition
protected static void addToPreemptMap(Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> preemptMap, Map<org.apache.hadoop.yarn.api.records.ApplicationAttemptId,Set<RMContainer>> curCandidates, org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId, RMContainer containerToPreempt)
Copyright © 2008–2020 Apache Software Foundation. All rights reserved.