@InterfaceAudience.Public
 @InterfaceStability.Stable
public abstract class AMRMClient<T extends AMRMClient.ContainerRequest>
extends org.apache.hadoop.service.AbstractService
| Modifier and Type | Class and Description | 
|---|---|
| static class  | AMRMClient.ContainerRequestObject to represent a single container request for resources. | 
| Modifier | Constructor and Description | 
|---|---|
| protected  | AMRMClient(String name) | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract void | addContainerRequest(T req)Request containers for resources before calling  allocate | 
| void | addSchedulingRequests(Collection<org.apache.hadoop.yarn.api.records.SchedulingRequest> schedulingRequests)Add a Collection of SchedulingRequests. | 
| abstract org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse | allocate(float progressIndicator)Request additional containers and receive new container allocations. | 
| static <T extends AMRMClient.ContainerRequest> | createAMRMClient()Create a new instance of AMRMClient. | 
| abstract org.apache.hadoop.yarn.api.records.Resource | getAvailableResources()Get the currently available resources in the cluster. | 
| abstract int | getClusterNodeCount()Get the current number of nodes in the cluster. | 
| abstract Collection<T> | getMatchingRequests(long allocationRequestId)Get outstanding  ContainerRequests matching the given
 allocationRequestId. | 
| List<? extends Collection<T>> | getMatchingRequests(org.apache.hadoop.yarn.api.records.Priority priority,
                   String resourceName,
                   org.apache.hadoop.yarn.api.records.ExecutionType executionType,
                   org.apache.hadoop.yarn.api.records.Resource capability)Get outstanding  ContainerRequests matching the given
 parameters. | 
| List<? extends Collection<T>> | getMatchingRequests(org.apache.hadoop.yarn.api.records.Priority priority,
                   String resourceName,
                   org.apache.hadoop.yarn.api.records.ExecutionType executionType,
                   org.apache.hadoop.yarn.api.records.Resource capability,
                   String profile) | 
| abstract List<? extends Collection<T>> | getMatchingRequests(org.apache.hadoop.yarn.api.records.Priority priority,
                   String resourceName,
                   org.apache.hadoop.yarn.api.records.Resource capability)Get outstanding  ContainerRequests matching the given 
 parameters. | 
| NMTokenCache | getNMTokenCache()Get the NM token cache of the  AMRMClient. | 
| org.apache.hadoop.yarn.client.api.TimelineV2Client | getRegisteredTimelineV2Client()Get registered timeline v2 client. | 
| abstract org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse | registerApplicationMaster(String appHostName,
                         int appHostPort,
                         String appTrackingUrl)Register the application master. | 
| org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse | registerApplicationMaster(String appHostName,
                         int appHostPort,
                         String appTrackingUrl,
                         Map<Set<String>,org.apache.hadoop.yarn.api.resource.PlacementConstraint> placementConstraints)Register the application master. | 
| void | registerTimelineV2Client(org.apache.hadoop.yarn.client.api.TimelineV2Client client)Register TimelineV2Client to AMRMClient. | 
| abstract void | releaseAssignedContainer(org.apache.hadoop.yarn.api.records.ContainerId containerId)Release containers assigned by the Resource Manager. | 
| abstract void | removeContainerRequest(T req)Remove previous container request. | 
| void | requestContainerResourceChange(org.apache.hadoop.yarn.api.records.Container container,
                              org.apache.hadoop.yarn.api.records.Resource capability)Deprecated. 
 | 
| abstract void | requestContainerUpdate(org.apache.hadoop.yarn.api.records.Container container,
                      org.apache.hadoop.yarn.api.records.UpdateContainerRequest updateContainerRequest)Request a container update before calling  allocate. | 
| void | setNMTokenCache(NMTokenCache nmTokenCache)Set the NM token cache for the  AMRMClient. | 
| abstract void | unregisterApplicationMaster(org.apache.hadoop.yarn.api.records.FinalApplicationStatus appStatus,
                           String appMessage,
                           String appTrackingUrl)Unregister the application master. | 
| abstract void | updateBlacklist(List<String> blacklistAdditions,
               List<String> blacklistRemovals)Update application's blacklist with addition or removal resources. | 
| void | updateTrackingUrl(String trackingUrl)Update application's tracking url on next heartbeat. | 
| void | waitFor(Supplier<Boolean> check)Wait for  checkto return true for each 1000 ms. | 
| void | waitFor(Supplier<Boolean> check,
       int checkEveryMillis)Wait for  checkto return true for eachcheckEveryMillisms. | 
| void | waitFor(Supplier<Boolean> check,
       int checkEveryMillis,
       int logInterval)Wait for  checkto return true for eachcheckEveryMillisms. | 
close, getBlockers, getConfig, getFailureCause, getFailureState, getLifecycleHistory, getName, getServiceState, getStartTime, init, isInState, noteFailure, putBlocker, registerGlobalListener, registerServiceListener, removeBlocker, serviceInit, serviceStart, serviceStop, setConfig, start, stop, toString, unregisterGlobalListener, unregisterServiceListener, waitForServiceToStop@InterfaceAudience.Private protected AMRMClient(String name)
@InterfaceAudience.Public public static <T extends AMRMClient.ContainerRequest> AMRMClient<T> createAMRMClient()
 
 AMRMClient.<T>createAMRMClientContainerRequest()
 @InterfaceAudience.Public @InterfaceStability.Unstable public void addSchedulingRequests(Collection<org.apache.hadoop.yarn.api.records.SchedulingRequest> schedulingRequests)
schedulingRequests - Collection of Scheduling Requests.public abstract org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse registerApplicationMaster(String appHostName, int appHostPort, String appTrackingUrl) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
appHostName - Name of the host on which master is runningappHostPort - Port master is listening onappTrackingUrl - URL at which the master info can be seenRegisterApplicationMasterResponseorg.apache.hadoop.yarn.exceptions.YarnExceptionIOException@InterfaceAudience.Public @InterfaceStability.Unstable public org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse registerApplicationMaster(String appHostName, int appHostPort, String appTrackingUrl, Map<Set<String>,org.apache.hadoop.yarn.api.resource.PlacementConstraint> placementConstraints) throws org.apache.hadoop.yarn.exceptions.YarnException, IOException
appHostName - Name of the host on which master is runningappHostPort - Port master is listening onappTrackingUrl - URL at which the master info can be seenplacementConstraints - Placement Constraints mappings.RegisterApplicationMasterResponseorg.apache.hadoop.yarn.exceptions.YarnExceptionIOExceptionpublic abstract org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse allocate(float progressIndicator)
                                                                              throws org.apache.hadoop.yarn.exceptions.YarnException,
                                                                                     IOException
addContainerRequest are sent to the
 ResourceManager. New containers assigned to the master are
 retrieved. Status of completed containers and node health updates are also
 retrieved. This also doubles up as a heartbeat to the ResourceManager and
 must be made periodically. The call may not always return any new
 allocations of containers. App should not make concurrent allocate
 requests. May cause request loss.
 
 Note : If the user has not removed container requests that have already been satisfied, then the re-register may end up sending the entire container requests to the RM (including matched requests). Which would mean the RM could end up giving it a lot of new allocated containers.
progressIndicator - Indicates progress made by the masterorg.apache.hadoop.yarn.exceptions.YarnExceptionIOExceptionpublic abstract void unregisterApplicationMaster(org.apache.hadoop.yarn.api.records.FinalApplicationStatus appStatus,
                                                 String appMessage,
                                                 String appTrackingUrl)
                                          throws org.apache.hadoop.yarn.exceptions.YarnException,
                                                 IOException
appStatus - Success/Failure status of the masterappMessage - Diagnostics message on failureappTrackingUrl - New URL to get master infoorg.apache.hadoop.yarn.exceptions.YarnExceptionIOExceptionpublic abstract void addContainerRequest(T req)
allocatereq - Resource requestpublic abstract void removeContainerRequest(T req)
req - Resource request@Deprecated public void requestContainerResourceChange(org.apache.hadoop.yarn.api.records.Container container, org.apache.hadoop.yarn.api.records.Resource capability)
requestContainerUpdate(Container, UpdateContainerRequest)allocate.
 Any previous pending resource change request of the same container will be
 removed.
 Application that calls this method is expected to maintain the
 Containers that are returned from previous successful
 allocations or resource changes. By passing in the existing container and a
 target resource capability to this method, the application requests the
 ResourceManager to change the existing resource allocation to the target
 resource allocation.container - The container returned from the last successful resource
                  allocation or resource changecapability - The target resource capability of the containerpublic abstract void requestContainerUpdate(org.apache.hadoop.yarn.api.records.Container container,
                                            org.apache.hadoop.yarn.api.records.UpdateContainerRequest updateContainerRequest)
allocate.
 Any previous pending update request of the same container will be
 removed.container - The container returned from the last successful resource
                  allocation or updateupdateContainerRequest - The UpdateContainerRequest.public abstract void releaseAssignedContainer(org.apache.hadoop.yarn.api.records.ContainerId containerId)
containerId - public abstract org.apache.hadoop.yarn.api.records.Resource getAvailableResources()
public abstract int getClusterNodeCount()
@InterfaceStability.Evolving public abstract List<? extends Collection<T>> getMatchingRequests(org.apache.hadoop.yarn.api.records.Priority priority, String resourceName, org.apache.hadoop.yarn.api.records.Resource capability)
ContainerRequests matching the given 
 parameters. These ContainerRequests should have been added via
 addContainerRequest earlier in the lifecycle. For performance,
 the AMRMClient may return its internal collection directly without creating 
 a copy. Users should not perform mutable operations on the return value.
 Each collection in the list contains requests with identical 
 Resource size that fit in the given capability. In a 
 collection, requests will be returned in the same order as they were added.
 NOTE: This API only matches Container requests that were created by the
 client WITHOUT the allocationRequestId being set.@InterfaceStability.Evolving public List<? extends Collection<T>> getMatchingRequests(org.apache.hadoop.yarn.api.records.Priority priority, String resourceName, org.apache.hadoop.yarn.api.records.ExecutionType executionType, org.apache.hadoop.yarn.api.records.Resource capability)
ContainerRequests matching the given
 parameters. These ContainerRequests should have been added via
 addContainerRequest earlier in the lifecycle. For performance,
 the AMRMClient may return its internal collection directly without creating
 a copy. Users should not perform mutable operations on the return value.
 Each collection in the list contains requests with identical
 Resource size that fit in the given capability. In a
 collection, requests will be returned in the same order as they were added.
 specify an ExecutionType.
 NOTE: This API only matches Container requests that were created by the
 client WITHOUT the allocationRequestId being set.priority - PriorityresourceName - LocationexecutionType - ExecutionTypecapability - Capability@InterfaceStability.Evolving public List<? extends Collection<T>> getMatchingRequests(org.apache.hadoop.yarn.api.records.Priority priority, String resourceName, org.apache.hadoop.yarn.api.records.ExecutionType executionType, org.apache.hadoop.yarn.api.records.Resource capability, String profile)
@InterfaceStability.Evolving public abstract Collection<T> getMatchingRequests(long allocationRequestId)
ContainerRequests matching the given
 allocationRequestId. These ContainerRequests should have been added via
 addContainerRequest earlier in the lifecycle. For performance,
 the AMRMClient may return its internal collection directly without creating
 a copy. Users should not perform mutable operations on the return value.
 NOTE: This API only matches Container requests that were created by the
 client WITH the allocationRequestId being set to a non-default value.allocationRequestId - Allocation Request Idpublic abstract void updateBlacklist(List<String> blacklistAdditions, List<String> blacklistRemovals)
blacklistAdditions - list of resources which should be added to the 
        application blacklistblacklistRemovals - list of resources which should be removed from the 
        application blacklistpublic void setNMTokenCache(NMTokenCache nmTokenCache)
AMRMClient. This cache must
 be shared with the NMClient used to manage containers for the
 AMRMClient
 
 If a NM token cache is not set, the NMTokenCache.getSingleton()
 singleton instance will be used.
nmTokenCache - the NM token cache to use.public NMTokenCache getNMTokenCache()
AMRMClient. This cache must be
 shared with the NMClient used to manage containers for the
 AMRMClient.
 
 If a NM token cache is not set, the NMTokenCache.getSingleton()
 singleton instance will be used.
public void registerTimelineV2Client(org.apache.hadoop.yarn.client.api.TimelineV2Client client)
client - the timeline v2 client to registerpublic org.apache.hadoop.yarn.client.api.TimelineV2Client getRegisteredTimelineV2Client()
@InterfaceAudience.Public @InterfaceStability.Unstable public void updateTrackingUrl(String trackingUrl)
trackingUrl - new tracking url for this applicationpublic void waitFor(Supplier<Boolean> check) throws InterruptedException
check to return true for each 1000 ms.
 See also waitFor(java.util.function.Supplier, int)
 and waitFor(java.util.function.Supplier, int, int)check - the condition for which it should waitInterruptedExceptionpublic void waitFor(Supplier<Boolean> check, int checkEveryMillis) throws InterruptedException
check to return true for each
 checkEveryMillis ms.
 See also waitFor(java.util.function.Supplier, int, int)check - user defined checkercheckEveryMillis - interval to call checkInterruptedExceptionpublic void waitFor(Supplier<Boolean> check, int checkEveryMillis, int logInterval) throws InterruptedException
check to return true for each
 checkEveryMillis ms. In the main loop, this method will log
 the message "waiting in main loop" for each logInterval times
 iteration to confirm the thread is alive.check - user defined checkercheckEveryMillis - interval to call checklogInterval - interval to log for eachInterruptedExceptionCopyright © 2008–2023 Apache Software Foundation. All rights reserved.