|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.hadoop.service.AbstractService
org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler<T,N>
public abstract class AbstractYarnScheduler<T extends SchedulerApplicationAttempt,N extends SchedulerNode>
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.apache.hadoop.service.Service |
|---|
org.apache.hadoop.service.Service.STATE |
| Field Summary | |
|---|---|
protected Map<org.apache.hadoop.yarn.api.records.ApplicationId,SchedulerApplication<T>> |
applications
|
protected org.apache.hadoop.yarn.api.records.Resource |
clusterResource
|
protected static Allocation |
EMPTY_ALLOCATION
|
protected static List<org.apache.hadoop.yarn.api.records.Container> |
EMPTY_CONTAINER_LIST
|
protected org.apache.hadoop.yarn.api.records.Resource |
maximumAllocation
|
protected org.apache.hadoop.yarn.api.records.Resource |
minimumAllocation
|
protected int |
nmExpireInterval
|
protected Map<org.apache.hadoop.yarn.api.records.NodeId,N> |
nodes
|
protected RMContext |
rmContext
|
| Constructor Summary | |
|---|---|
AbstractYarnScheduler(String name)
Construct the service. |
|
| Method Summary | |
|---|---|
void |
addQueue(Queue newQueue)
Add to the scheduler a new Queue. |
protected abstract void |
completedContainer(RMContainer rmContainer,
org.apache.hadoop.yarn.api.records.ContainerStatus containerStatus,
RMContainerEventType event)
|
protected void |
containerLaunchedOnNode(org.apache.hadoop.yarn.api.records.ContainerId containerId,
SchedulerNode node)
|
protected void |
createReleaseCache()
|
T |
getApplicationAttempt(org.apache.hadoop.yarn.api.records.ApplicationAttemptId applicationAttemptId)
|
org.apache.hadoop.yarn.api.records.ApplicationResourceUsageReport |
getAppResourceUsageReport(org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId)
Get a resource usage report from a given app attempt ID. |
org.apache.hadoop.yarn.api.records.Resource |
getClusterResource()
Get the whole resource capacity of the cluster. |
T |
getCurrentAttemptForContainer(org.apache.hadoop.yarn.api.records.ContainerId containerId)
|
org.apache.hadoop.yarn.api.records.Resource |
getMaximumResourceCapability()
Get maximum allocatable Resource. |
org.apache.hadoop.yarn.api.records.Resource |
getMinimumResourceCapability()
Get minimum allocatable Resource. |
SchedulerNodeReport |
getNodeReport(org.apache.hadoop.yarn.api.records.NodeId nodeId)
Get node resource usage report. |
Set<String> |
getPlanQueues()
Gets the list of names for queues managed by the Reservation System |
RMContainer |
getRMContainer(org.apache.hadoop.yarn.api.records.ContainerId containerId)
Get the container for the given containerId. |
SchedulerAppReport |
getSchedulerAppInfo(org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId)
Get the Scheduler app for a given app attempt Id. |
Map<org.apache.hadoop.yarn.api.records.ApplicationId,SchedulerApplication<T>> |
getSchedulerApplications()
|
SchedulerNode |
getSchedulerNode(org.apache.hadoop.yarn.api.records.NodeId nodeId)
|
EnumSet<org.apache.hadoop.yarn.proto.YarnServiceProtos.SchedulerResourceTypes> |
getSchedulingResourceTypes()
Return a collection of the resource types that are considered when scheduling |
List<org.apache.hadoop.yarn.api.records.Container> |
getTransferredContainers(org.apache.hadoop.yarn.api.records.ApplicationAttemptId currentAttempt)
|
void |
killAllAppsInQueue(String queueName)
Terminate all applications in the specified queue. |
void |
moveAllApps(String sourceQueue,
String destQueue)
Completely drain sourceQueue of applications, by moving all of them to destQueue. |
String |
moveApplication(org.apache.hadoop.yarn.api.records.ApplicationId appId,
String newQueue)
Moves the given application to the given queue |
void |
recoverContainersOnNode(List<org.apache.hadoop.yarn.server.api.protocolrecords.NMContainerStatus> containerReports,
RMNode nm)
|
protected void |
recoverResourceRequestForContainer(RMContainer rmContainer)
Recover resource request back from RMContainer when a container is preempted before AM pulled the same. |
protected void |
releaseContainers(List<org.apache.hadoop.yarn.api.records.ContainerId> containers,
SchedulerApplicationAttempt attempt)
|
void |
removeQueue(String queueName)
Remove an existing queue. |
void |
serviceInit(org.apache.hadoop.conf.Configuration conf)
|
void |
setEntitlement(String queue,
QueueEntitlement entitlement)
This method increase the entitlement for current queue (must respect invariants, e.g., no overcommit of parents, non negative, etc.). |
void |
updateNodeResource(RMNode nm,
org.apache.hadoop.yarn.api.records.ResourceOption resourceOption)
Process resource update on a node. |
| Methods inherited from class org.apache.hadoop.service.AbstractService |
|---|
close, getBlockers, getConfig, getFailureCause, getFailureState, getLifecycleHistory, getName, getServiceState, getStartTime, init, isInState, noteFailure, putBlocker, registerGlobalListener, registerServiceListener, removeBlocker, serviceStart, serviceStop, setConfig, start, stop, toString, unregisterGlobalListener, unregisterServiceListener, waitForServiceToStop |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.apache.hadoop.yarn.server.resourcemanager.scheduler.ResourceScheduler |
|---|
reinitialize, setRMContext |
| Methods inherited from interface org.apache.hadoop.yarn.server.resourcemanager.scheduler.YarnScheduler |
|---|
allocate, checkAccess, getAppsInQueue, getNumClusterNodes, getQueueInfo, getQueueUserAclInfo, getRootQueueMetrics |
| Methods inherited from interface org.apache.hadoop.yarn.event.EventHandler |
|---|
handle |
| Methods inherited from interface org.apache.hadoop.yarn.server.resourcemanager.recovery.Recoverable |
|---|
recover |
| Field Detail |
|---|
protected Map<org.apache.hadoop.yarn.api.records.NodeId,N extends SchedulerNode> nodes
protected org.apache.hadoop.yarn.api.records.Resource clusterResource
protected org.apache.hadoop.yarn.api.records.Resource minimumAllocation
protected org.apache.hadoop.yarn.api.records.Resource maximumAllocation
protected RMContext rmContext
protected Map<org.apache.hadoop.yarn.api.records.ApplicationId,SchedulerApplication<T extends SchedulerApplicationAttempt>> applications
protected int nmExpireInterval
protected static final List<org.apache.hadoop.yarn.api.records.Container> EMPTY_CONTAINER_LIST
protected static final Allocation EMPTY_ALLOCATION
| Constructor Detail |
|---|
public AbstractYarnScheduler(String name)
name - service name| Method Detail |
|---|
public void serviceInit(org.apache.hadoop.conf.Configuration conf)
throws Exception
serviceInit in class org.apache.hadoop.service.AbstractServiceExceptionpublic List<org.apache.hadoop.yarn.api.records.Container> getTransferredContainers(org.apache.hadoop.yarn.api.records.ApplicationAttemptId currentAttempt)
public Map<org.apache.hadoop.yarn.api.records.ApplicationId,SchedulerApplication<T>> getSchedulerApplications()
public org.apache.hadoop.yarn.api.records.Resource getClusterResource()
YarnScheduler
getClusterResource in interface YarnSchedulerpublic org.apache.hadoop.yarn.api.records.Resource getMinimumResourceCapability()
YarnSchedulerResource.
getMinimumResourceCapability in interface YarnSchedulerpublic org.apache.hadoop.yarn.api.records.Resource getMaximumResourceCapability()
YarnSchedulerResource.
getMaximumResourceCapability in interface YarnScheduler
protected void containerLaunchedOnNode(org.apache.hadoop.yarn.api.records.ContainerId containerId,
SchedulerNode node)
public T getApplicationAttempt(org.apache.hadoop.yarn.api.records.ApplicationAttemptId applicationAttemptId)
public SchedulerAppReport getSchedulerAppInfo(org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId)
YarnScheduler
getSchedulerAppInfo in interface YarnSchedulerappAttemptId - the id of the application attempt
public org.apache.hadoop.yarn.api.records.ApplicationResourceUsageReport getAppResourceUsageReport(org.apache.hadoop.yarn.api.records.ApplicationAttemptId appAttemptId)
YarnScheduler
getAppResourceUsageReport in interface YarnSchedulerappAttemptId - the id of the application attempt
public T getCurrentAttemptForContainer(org.apache.hadoop.yarn.api.records.ContainerId containerId)
public RMContainer getRMContainer(org.apache.hadoop.yarn.api.records.ContainerId containerId)
YarnScheduler
getRMContainer in interface YarnSchedulerpublic SchedulerNodeReport getNodeReport(org.apache.hadoop.yarn.api.records.NodeId nodeId)
YarnScheduler
getNodeReport in interface YarnSchedulerSchedulerNodeReport for the node or null
if nodeId does not point to a defined node.
public String moveApplication(org.apache.hadoop.yarn.api.records.ApplicationId appId,
String newQueue)
throws org.apache.hadoop.yarn.exceptions.YarnException
YarnScheduler
moveApplication in interface YarnSchedulerorg.apache.hadoop.yarn.exceptions.YarnException - if the move cannot be carried out
public void removeQueue(String queueName)
throws org.apache.hadoop.yarn.exceptions.YarnException
YarnScheduler
removeQueue in interface YarnSchedulerqueueName - name of the queue to remove
org.apache.hadoop.yarn.exceptions.YarnException
public void addQueue(Queue newQueue)
throws org.apache.hadoop.yarn.exceptions.YarnException
YarnScheduler
addQueue in interface YarnSchedulernewQueue - the queue being added.
org.apache.hadoop.yarn.exceptions.YarnException
public void setEntitlement(String queue,
QueueEntitlement entitlement)
throws org.apache.hadoop.yarn.exceptions.YarnException
YarnScheduler
setEntitlement in interface YarnSchedulerqueue - the queue for which we change entitlemententitlement - the new entitlement for the queue (capacity,
maxCapacity, etc..)
org.apache.hadoop.yarn.exceptions.YarnException
public void recoverContainersOnNode(List<org.apache.hadoop.yarn.server.api.protocolrecords.NMContainerStatus> containerReports,
RMNode nm)
protected void recoverResourceRequestForContainer(RMContainer rmContainer)
rmContainer - protected void createReleaseCache()
protected abstract void completedContainer(RMContainer rmContainer,
org.apache.hadoop.yarn.api.records.ContainerStatus containerStatus,
RMContainerEventType event)
protected void releaseContainers(List<org.apache.hadoop.yarn.api.records.ContainerId> containers,
SchedulerApplicationAttempt attempt)
public SchedulerNode getSchedulerNode(org.apache.hadoop.yarn.api.records.NodeId nodeId)
public void moveAllApps(String sourceQueue,
String destQueue)
throws org.apache.hadoop.yarn.exceptions.YarnException
YarnScheduler
moveAllApps in interface YarnSchedulerorg.apache.hadoop.yarn.exceptions.YarnException
public void killAllAppsInQueue(String queueName)
throws org.apache.hadoop.yarn.exceptions.YarnException
YarnScheduler
killAllAppsInQueue in interface YarnSchedulerqueueName - the name of queue to be drained
org.apache.hadoop.yarn.exceptions.YarnException
public void updateNodeResource(RMNode nm,
org.apache.hadoop.yarn.api.records.ResourceOption resourceOption)
public EnumSet<org.apache.hadoop.yarn.proto.YarnServiceProtos.SchedulerResourceTypes> getSchedulingResourceTypes()
getSchedulingResourceTypes in interface YarnScheduler
public Set<String> getPlanQueues()
throws org.apache.hadoop.yarn.exceptions.YarnException
YarnScheduler
getPlanQueues in interface YarnSchedulerorg.apache.hadoop.yarn.exceptions.YarnException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||