|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.SchedulingPolicy
@InterfaceAudience.Public @InterfaceStability.Evolving public abstract class SchedulingPolicy
| Field Summary | |
|---|---|
static SchedulingPolicy |
DEFAULT_POLICY
|
static byte |
DEPTH_ANY
|
static byte |
DEPTH_INTERMEDIATE
|
static byte |
DEPTH_LEAF
|
static byte |
DEPTH_PARENT
|
static byte |
DEPTH_ROOT
|
| Constructor Summary | |
|---|---|
SchedulingPolicy()
|
|
| Method Summary | |
|---|---|
abstract boolean |
checkIfAMResourceUsageOverLimit(org.apache.hadoop.yarn.api.records.Resource usage,
org.apache.hadoop.yarn.api.records.Resource maxAMResource)
Check if a leaf queue's AM resource usage over its limit under this policy |
abstract boolean |
checkIfUsageOverFairShare(org.apache.hadoop.yarn.api.records.Resource usage,
org.apache.hadoop.yarn.api.records.Resource fairShare)
Check if the resource usage is over the fair share under this policy |
abstract void |
computeShares(Collection<? extends Schedulable> schedulables,
org.apache.hadoop.yarn.api.records.Resource totalResources)
Computes and updates the shares of Schedulables as per
the SchedulingPolicy, to be used later for scheduling decisions. |
abstract void |
computeSteadyShares(Collection<? extends FSQueue> queues,
org.apache.hadoop.yarn.api.records.Resource totalResources)
Computes and updates the steady shares of FSQueues as per the
SchedulingPolicy. |
abstract byte |
getApplicableDepth()
Specifies the depths in the hierarchy, this SchedulingPolicy
applies to |
abstract Comparator<Schedulable> |
getComparator()
The comparator returned by this method is to be used for sorting the Schedulables in that queue. |
abstract org.apache.hadoop.yarn.api.records.Resource |
getHeadroom(org.apache.hadoop.yarn.api.records.Resource queueFairShare,
org.apache.hadoop.yarn.api.records.Resource queueUsage,
org.apache.hadoop.yarn.api.records.Resource clusterAvailable)
Get headroom by calculating the min of clusterAvailable and
(queueFairShare - queueUsage) resources that are
applicable to this policy. |
static SchedulingPolicy |
getInstance(Class<? extends SchedulingPolicy> clazz)
Returns a SchedulingPolicy instance corresponding to the passed clazz |
abstract String |
getName()
|
void |
initialize(org.apache.hadoop.yarn.api.records.Resource clusterCapacity)
|
static boolean |
isApplicableTo(SchedulingPolicy policy,
byte depth)
Checks if the specified SchedulingPolicy can be used for a queue at
the specified depth in the hierarchy |
static SchedulingPolicy |
parse(String policy)
Returns SchedulingPolicy instance corresponding to the
SchedulingPolicy passed as a string. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final SchedulingPolicy DEFAULT_POLICY
public static final byte DEPTH_LEAF
public static final byte DEPTH_INTERMEDIATE
public static final byte DEPTH_ROOT
public static final byte DEPTH_PARENT
public static final byte DEPTH_ANY
| Constructor Detail |
|---|
public SchedulingPolicy()
| Method Detail |
|---|
public static SchedulingPolicy getInstance(Class<? extends SchedulingPolicy> clazz)
SchedulingPolicy instance corresponding to the passed clazz
public static SchedulingPolicy parse(String policy)
throws AllocationConfigurationException
SchedulingPolicy instance corresponding to the
SchedulingPolicy passed as a string. The policy can be "fair" for
FairSharePolicy, "fifo" for FifoPolicy, or "drf" for
DominantResourceFairnessPolicy. For a custom
SchedulingPolicys in the RM classpath, the policy should be
canonical class name of the SchedulingPolicy.
policy - canonical class name or "drf" or "fair" or "fifo"
AllocationConfigurationExceptionpublic void initialize(org.apache.hadoop.yarn.api.records.Resource clusterCapacity)
public abstract String getName()
SchedulingPolicypublic abstract byte getApplicableDepth()
SchedulingPolicy
applies to
SchedulingPolicy#DEPTH_*
public static boolean isApplicableTo(SchedulingPolicy policy,
byte depth)
SchedulingPolicy can be used for a queue at
the specified depth in the hierarchy
policy - SchedulingPolicy we are checking the
depth-applicability fordepth - queue's depth in the hierarchy
public abstract Comparator<Schedulable> getComparator()
Schedulables in that queue.
public abstract void computeShares(Collection<? extends Schedulable> schedulables,
org.apache.hadoop.yarn.api.records.Resource totalResources)
Schedulables as per
the SchedulingPolicy, to be used later for scheduling decisions.
The shares computed are instantaneous and only consider queues with
running applications.
schedulables - Schedulables whose shares are to be updatedtotalResources - Total Resources in the cluster
public abstract void computeSteadyShares(Collection<? extends FSQueue> queues,
org.apache.hadoop.yarn.api.records.Resource totalResources)
FSQueues as per the
SchedulingPolicy. The steady share does not differentiate
between queues with and without running applications under them. The
steady share is not used for scheduling, it is displayed on the Web UI
for better visibility.
queues - FSQueues whose shares are to be updatedtotalResources - Total Resources in the cluster
public abstract boolean checkIfUsageOverFairShare(org.apache.hadoop.yarn.api.records.Resource usage,
org.apache.hadoop.yarn.api.records.Resource fairShare)
usage - Resource the resource usagefairShare - Resource the fair share
public abstract boolean checkIfAMResourceUsageOverLimit(org.apache.hadoop.yarn.api.records.Resource usage,
org.apache.hadoop.yarn.api.records.Resource maxAMResource)
usage - Resource the resource used by application mastersmaxAMResource - Resource the maximum allowed resource for
application masters
public abstract org.apache.hadoop.yarn.api.records.Resource getHeadroom(org.apache.hadoop.yarn.api.records.Resource queueFairShare,
org.apache.hadoop.yarn.api.records.Resource queueUsage,
org.apache.hadoop.yarn.api.records.Resource clusterAvailable)
clusterAvailable and
(queueFairShare - queueUsage) resources that are
applicable to this policy. For eg if only memory then leave other
resources such as CPU to same as clusterAvailable.
queueFairShare - fairshare in the queuequeueUsage - resources used in the queueclusterAvailable - available resource in cluster
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||