|
||||||||||
| 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<FiCaSchedulerApp,FiCaSchedulerNode>
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
@InterfaceAudience.LimitedPrivate(value="yarn") @InterfaceStability.Evolving public class CapacityScheduler
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.apache.hadoop.service.Service |
|---|
org.apache.hadoop.service.Service.STATE |
| Field Summary | |
|---|---|
static String |
ROOT_QUEUE
|
protected long |
THREAD_JOIN_TIMEOUT_MS
|
| Fields inherited from class org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler |
|---|
applications, clusterResource, EMPTY_ALLOCATION, EMPTY_CONTAINER_LIST, maximumAllocation, minimumAllocation, nmExpireInterval, nodes, rmContext |
| Constructor Summary | |
|---|---|
CapacityScheduler()
|
|
| Method Summary | |
|---|---|
void |
addQueue(Queue queue)
Add to the scheduler a new Queue. |
Allocation |
allocate(org.apache.hadoop.yarn.api.records.ApplicationAttemptId applicationAttemptId,
List<org.apache.hadoop.yarn.api.records.ResourceRequest> ask,
List<org.apache.hadoop.yarn.api.records.ContainerId> release,
List<String> blacklistAdditions,
List<String> blacklistRemovals)
The main api between the ApplicationMaster and the Scheduler. |
boolean |
checkAccess(org.apache.hadoop.security.UserGroupInformation callerUGI,
org.apache.hadoop.yarn.api.records.QueueACL acl,
String queueName)
Check if the user has permission to perform the operation. |
protected void |
completedContainer(RMContainer rmContainer,
org.apache.hadoop.yarn.api.records.ContainerStatus containerStatus,
RMContainerEventType event)
|
void |
dropContainerReservation(RMContainer container)
If the scheduler support container reservations, this method is used to ask the scheduler to drop the reservation for the given container. |
FiCaSchedulerApp |
getApplicationAttempt(org.apache.hadoop.yarn.api.records.ApplicationAttemptId applicationAttemptId)
|
Comparator<FiCaSchedulerApp> |
getApplicationComparator()
|
List<org.apache.hadoop.yarn.api.records.ApplicationAttemptId> |
getAppsInQueue(String queueName)
Gets the apps under a given queue |
org.apache.hadoop.conf.Configuration |
getConf()
Get the yarn configuration. |
CapacitySchedulerConfiguration |
getConfiguration()
|
RMContainerTokenSecretManager |
getContainerTokenSecretManager()
|
String |
getMappedQueueForTest(String user)
|
FiCaSchedulerNode |
getNode(org.apache.hadoop.yarn.api.records.NodeId nodeId)
|
int |
getNumClusterNodes()
Get the number of nodes available in the cluster. |
Set<String> |
getPlanQueues()
Gets the list of names for queues managed by the Reservation System |
CSQueue |
getQueue(String queueName)
|
Comparator<CSQueue> |
getQueueComparator()
|
org.apache.hadoop.yarn.api.records.QueueInfo |
getQueueInfo(String queueName,
boolean includeChildQueues,
boolean recursive)
Get queue information |
List<org.apache.hadoop.yarn.api.records.QueueUserACLInfo> |
getQueueUserAclInfo()
Get acls for queues for current user. |
org.apache.hadoop.yarn.util.resource.ResourceCalculator |
getResourceCalculator()
|
RMContext |
getRMContext()
|
CSQueue |
getRootQueue()
|
QueueMetrics |
getRootQueueMetrics()
Get the root queue for the scheduler. |
EnumSet<org.apache.hadoop.yarn.proto.YarnServiceProtos.SchedulerResourceTypes> |
getSchedulingResourceTypes()
Return a collection of the resource types that are considered when scheduling |
void |
handle(SchedulerEvent event)
|
void |
killContainer(RMContainer cont)
Ask the scheduler to forcibly interrupt the container given as input |
String |
moveApplication(org.apache.hadoop.yarn.api.records.ApplicationId appId,
String targetQueueName)
Moves the given application to the given queue |
void |
preemptContainer(org.apache.hadoop.yarn.api.records.ApplicationAttemptId aid,
RMContainer cont)
Ask the scheduler to obtain back the container from a specific application by issuing a preemption request |
void |
recover(RMStateStore.RMState state)
|
void |
reinitialize(org.apache.hadoop.conf.Configuration conf,
RMContext rmContext)
Re-initialize the ResourceScheduler. |
void |
removeQueue(String queueName)
Remove an existing queue. |
void |
serviceInit(org.apache.hadoop.conf.Configuration conf)
|
void |
serviceStart()
|
void |
serviceStop()
|
void |
setConf(org.apache.hadoop.conf.Configuration conf)
|
void |
setEntitlement(String inQueue,
QueueEntitlement entitlement)
This method increase the entitlement for current queue (must respect invariants, e.g., no overcommit of parents, non negative, etc.). |
void |
setRMContext(RMContext rmContext)
Set RMContext for ResourceScheduler. |
| Methods inherited from class org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler |
|---|
containerLaunchedOnNode, createReleaseCache, getAppResourceUsageReport, getClusterResource, getCurrentAttemptForContainer, getMaximumResourceCapability, getMinimumResourceCapability, getNodeReport, getRMContainer, getSchedulerAppInfo, getSchedulerApplications, getSchedulerNode, getTransferredContainers, killAllAppsInQueue, moveAllApps, recoverContainersOnNode, recoverResourceRequestForContainer, releaseContainers, updateNodeResource |
| 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, 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.YarnScheduler |
|---|
getAppResourceUsageReport, getClusterResource, getMaximumResourceCapability, getMinimumResourceCapability, getNodeReport, getRMContainer, getSchedulerAppInfo, killAllAppsInQueue, moveAllApps |
| Methods inherited from interface org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerContext |
|---|
getClusterResource, getMaximumResourceCapability, getMinimumResourceCapability |
| Field Detail |
|---|
protected final long THREAD_JOIN_TIMEOUT_MS
@InterfaceAudience.Private public static final String ROOT_QUEUE
| Constructor Detail |
|---|
public CapacityScheduler()
| Method Detail |
|---|
public void setConf(org.apache.hadoop.conf.Configuration conf)
setConf in interface org.apache.hadoop.conf.Configurablepublic org.apache.hadoop.conf.Configuration getConf()
CapacitySchedulerContext
getConf in interface org.apache.hadoop.conf.ConfigurablegetConf in interface CapacitySchedulerContext
public String getMappedQueueForTest(String user)
throws IOException
IOExceptionpublic QueueMetrics getRootQueueMetrics()
YarnScheduler
getRootQueueMetrics in interface YarnSchedulerpublic CSQueue getRootQueue()
public CapacitySchedulerConfiguration getConfiguration()
getConfiguration in interface CapacitySchedulerContextpublic RMContainerTokenSecretManager getContainerTokenSecretManager()
getContainerTokenSecretManager in interface CapacitySchedulerContextpublic Comparator<FiCaSchedulerApp> getApplicationComparator()
getApplicationComparator in interface CapacitySchedulerContextpublic org.apache.hadoop.yarn.util.resource.ResourceCalculator getResourceCalculator()
getResourceCalculator in interface CapacitySchedulerContextpublic Comparator<CSQueue> getQueueComparator()
getQueueComparator in interface CapacitySchedulerContextpublic int getNumClusterNodes()
YarnScheduler
getNumClusterNodes in interface CapacitySchedulerContextgetNumClusterNodes in interface YarnSchedulerpublic RMContext getRMContext()
getRMContext in interface CapacitySchedulerContextpublic void setRMContext(RMContext rmContext)
ResourceSchedulerResourceScheduler.
This method should be called immediately after instantiating
a scheduler once.
setRMContext in interface ResourceSchedulerrmContext - created by ResourceManager
public void serviceInit(org.apache.hadoop.conf.Configuration conf)
throws Exception
serviceInit in class AbstractYarnScheduler<FiCaSchedulerApp,FiCaSchedulerNode>Exception
public void serviceStart()
throws Exception
serviceStart in class org.apache.hadoop.service.AbstractServiceException
public void serviceStop()
throws Exception
serviceStop in class org.apache.hadoop.service.AbstractServiceException
public void reinitialize(org.apache.hadoop.conf.Configuration conf,
RMContext rmContext)
throws IOException
ResourceSchedulerResourceScheduler.
reinitialize in interface ResourceSchedulerconf - configuration
IOExceptionpublic CSQueue getQueue(String queueName)
@Lock(value=org.apache.hadoop.yarn.server.utils.Lock.NoLock.class)
public Allocation allocate(org.apache.hadoop.yarn.api.records.ApplicationAttemptId applicationAttemptId,
List<org.apache.hadoop.yarn.api.records.ResourceRequest> ask,
List<org.apache.hadoop.yarn.api.records.ContainerId> release,
List<String> blacklistAdditions,
List<String> blacklistRemovals)
YarnScheduler
allocate in interface YarnSchedulerAllocation for the application
@Lock(value=org.apache.hadoop.yarn.server.utils.Lock.NoLock.class)
public org.apache.hadoop.yarn.api.records.QueueInfo getQueueInfo(String queueName,
boolean includeChildQueues,
boolean recursive)
throws IOException
YarnScheduler
getQueueInfo in interface YarnSchedulerqueueName - queue nameincludeChildQueues - include child queues?recursive - get children queues?
IOException@Lock(value=org.apache.hadoop.yarn.server.utils.Lock.NoLock.class) public List<org.apache.hadoop.yarn.api.records.QueueUserACLInfo> getQueueUserAclInfo()
YarnScheduler
getQueueUserAclInfo in interface YarnSchedulerpublic void handle(SchedulerEvent event)
handle in interface org.apache.hadoop.yarn.event.EventHandler<SchedulerEvent>
@Lock(value=CapacityScheduler.class)
protected void completedContainer(RMContainer rmContainer,
org.apache.hadoop.yarn.api.records.ContainerStatus containerStatus,
RMContainerEventType event)
completedContainer in class AbstractYarnScheduler<FiCaSchedulerApp,FiCaSchedulerNode>@Lock(value=org.apache.hadoop.yarn.server.utils.Lock.NoLock.class) public FiCaSchedulerApp getApplicationAttempt(org.apache.hadoop.yarn.api.records.ApplicationAttemptId applicationAttemptId)
getApplicationAttempt in class AbstractYarnScheduler<FiCaSchedulerApp,FiCaSchedulerNode>@Lock(value=org.apache.hadoop.yarn.server.utils.Lock.NoLock.class) public FiCaSchedulerNode getNode(org.apache.hadoop.yarn.api.records.NodeId nodeId)
getNode in interface CapacitySchedulerContext
@Lock(value=org.apache.hadoop.yarn.server.utils.Lock.NoLock.class)
public void recover(RMStateStore.RMState state)
throws Exception
recover in interface RecoverableExceptionpublic void dropContainerReservation(RMContainer container)
PreemptableResourceScheduler
dropContainerReservation in interface PreemptableResourceSchedulercontainer - Reference to reserved container allocation.
public void preemptContainer(org.apache.hadoop.yarn.api.records.ApplicationAttemptId aid,
RMContainer cont)
PreemptableResourceScheduler
preemptContainer in interface PreemptableResourceScheduleraid - the application from which we want to get a container backcont - the container we want backpublic void killContainer(RMContainer cont)
PreemptableResourceScheduler
killContainer in interface PreemptableResourceScheduler
public boolean checkAccess(org.apache.hadoop.security.UserGroupInformation callerUGI,
org.apache.hadoop.yarn.api.records.QueueACL acl,
String queueName)
YarnSchedulerQueueACL.ADMINISTER_QUEUE permission,
this user can view/modify the applications in this queue
checkAccess in interface YarnSchedulertrue if the user has the permission,
false otherwisepublic List<org.apache.hadoop.yarn.api.records.ApplicationAttemptId> getAppsInQueue(String queueName)
YarnScheduler
getAppsInQueue in interface YarnSchedulerqueueName - the name of the queue.
public void removeQueue(String queueName)
throws SchedulerDynamicEditException
YarnScheduler
removeQueue in interface YarnSchedulerremoveQueue in class AbstractYarnScheduler<FiCaSchedulerApp,FiCaSchedulerNode>queueName - name of the queue to remove
SchedulerDynamicEditException
public void addQueue(Queue queue)
throws SchedulerDynamicEditException
YarnScheduler
addQueue in interface YarnScheduleraddQueue in class AbstractYarnScheduler<FiCaSchedulerApp,FiCaSchedulerNode>queue - the queue being added.
SchedulerDynamicEditException
public void setEntitlement(String inQueue,
QueueEntitlement entitlement)
throws SchedulerDynamicEditException,
org.apache.hadoop.yarn.exceptions.YarnException
YarnScheduler
setEntitlement in interface YarnSchedulersetEntitlement in class AbstractYarnScheduler<FiCaSchedulerApp,FiCaSchedulerNode>inQueue - the queue for which we change entitlemententitlement - the new entitlement for the queue (capacity,
maxCapacity, etc..)
org.apache.hadoop.yarn.exceptions.YarnException
SchedulerDynamicEditException
public String moveApplication(org.apache.hadoop.yarn.api.records.ApplicationId appId,
String targetQueueName)
throws org.apache.hadoop.yarn.exceptions.YarnException
YarnScheduler
moveApplication in interface YarnSchedulermoveApplication in class AbstractYarnScheduler<FiCaSchedulerApp,FiCaSchedulerNode>org.apache.hadoop.yarn.exceptions.YarnException - if the move cannot be carried outpublic EnumSet<org.apache.hadoop.yarn.proto.YarnServiceProtos.SchedulerResourceTypes> getSchedulingResourceTypes()
getSchedulingResourceTypes in interface YarnSchedulergetSchedulingResourceTypes in class AbstractYarnScheduler<FiCaSchedulerApp,FiCaSchedulerNode>public Set<String> getPlanQueues()
YarnScheduler
getPlanQueues in interface YarnSchedulergetPlanQueues in class AbstractYarnScheduler<FiCaSchedulerApp,FiCaSchedulerNode>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||