Class NMClient

java.lang.Object
org.apache.hadoop.service.AbstractService
org.apache.hadoop.yarn.client.api.NMClient
All Implemented Interfaces:
Closeable, AutoCloseable, Service

@Public @Stable public abstract class NMClient extends AbstractService
  • Constructor Details

    • NMClient

      @Private protected NMClient(String name)
  • Method Details

    • createNMClient

      @Public public static NMClient createNMClient()
      Create a new instance of NMClient.
    • createNMClient

      @Public public static NMClient createNMClient(String name)
      Create a new instance of NMClient.
    • startContainer

      public abstract Map<String,ByteBuffer> startContainer(Container container, ContainerLaunchContext containerLaunchContext) throws YarnException, IOException

      Start an allocated container.

      The ApplicationMaster or other applications that use the client must provide the details of the allocated container, including the Id, the assigned node's Id and the token via Container. In addition, the AM needs to provide the ContainerLaunchContext as well.

      Parameters:
      container - the allocated container
      containerLaunchContext - the context information needed by the NodeManager to launch the container
      Returns:
      a map between the auxiliary service names and their outputs
      Throws:
      YarnException - YarnException.
      IOException - IOException.
    • increaseContainerResource

      @Deprecated public abstract void increaseContainerResource(Container container) throws YarnException, IOException
      Deprecated.

      Increase the resource of a container.

      The ApplicationMaster or other applications that use the client must provide the details of the container, including the Id and the target resource encapsulated in the updated container token via Container.

      Parameters:
      container - the container with updated token.
      Throws:
      YarnException - YarnException.
      IOException - IOException.
    • updateContainerResource

      public abstract void updateContainerResource(Container container) throws YarnException, IOException

      Update the resources of a container.

      The ApplicationMaster or other applications that use the client must provide the details of the container, including the Id and the target resource encapsulated in the updated container token via Container.

      Parameters:
      container - the container with updated token.
      Throws:
      YarnException - YarnException.
      IOException - IOException.
    • stopContainer

      public abstract void stopContainer(ContainerId containerId, NodeId nodeId) throws YarnException, IOException

      Stop an started container.

      Parameters:
      containerId - the Id of the started container
      nodeId - the Id of the NodeManager
      Throws:
      YarnException - YarnException.
      IOException - IOException.
    • getContainerStatus

      public abstract ContainerStatus getContainerStatus(ContainerId containerId, NodeId nodeId) throws YarnException, IOException

      Query the status of a container.

      Parameters:
      containerId - the Id of the started container
      nodeId - the Id of the NodeManager
      Returns:
      the status of a container.
      Throws:
      YarnException - YarnException.
      IOException - IOException.
    • reInitializeContainer

      public abstract void reInitializeContainer(ContainerId containerId, ContainerLaunchContext containerLaunchContex, boolean autoCommit) throws YarnException, IOException

      Re-Initialize the Container.

      Parameters:
      containerId - the Id of the container to Re-Initialize.
      containerLaunchContex - the updated ContainerLaunchContext.
      autoCommit - commit re-initialization automatically ?
      Throws:
      YarnException - YarnException.
      IOException - IOException.
    • restartContainer

      public abstract void restartContainer(ContainerId containerId) throws YarnException, IOException

      Restart the specified container.

      Parameters:
      containerId - the Id of the container to restart.
      Throws:
      YarnException - YarnException.
      IOException - IOException.
    • rollbackLastReInitialization

      public abstract void rollbackLastReInitialization(ContainerId containerId) throws YarnException, IOException

      Rollback last reInitialization of the specified container.

      Parameters:
      containerId - the Id of the container to restart.
      Throws:
      YarnException - YarnException.
      IOException - IOException.
    • commitLastReInitialization

      public abstract void commitLastReInitialization(ContainerId containerId) throws YarnException, IOException

      Commit last reInitialization of the specified container.

      Parameters:
      containerId - the Id of the container to commit reInitialize.
      Throws:
      YarnException - YarnException.
      IOException - IOException.
    • cleanupRunningContainersOnStop

      public abstract void cleanupRunningContainersOnStop(boolean enabled)

      Set whether the containers that are started by this client, and are still running should be stopped when the client stops. By default, the feature should be enabled.

      However, containers will be stopped only when service is stopped. i.e. after AbstractService.stop().
      Parameters:
      enabled - whether the feature is enabled or not
    • setNMTokenCache

      public void setNMTokenCache(NMTokenCache nmTokenCache)
      Set the NM Token cache of the NMClient. This cache must be shared with the AMRMClient that requested the containers managed by this NMClient

      If a NM token cache is not set, the NMTokenCache.getSingleton() singleton instance will be used.

      Parameters:
      nmTokenCache - the NM token cache to use.
    • getNMTokenCache

      public NMTokenCache getNMTokenCache()
      Get the NM token cache of the NMClient. This cache must be shared with the AMRMClient that requested the containers managed by this NMClient

      If a NM token cache is not set, the NMTokenCache.getSingleton() singleton instance will be used.

      Returns:
      the NM token cache
    • getNodeIdOfStartedContainer

      public NodeId getNodeIdOfStartedContainer(ContainerId containerId)
      Get the NodeId of the node on which container is running. It returns null if the container if container is not found or if it is not running.
      Parameters:
      containerId - Container Id of the container.
      Returns:
      NodeId of the container on which it is running.
    • localize

      @Unstable public void localize(ContainerId containerId, NodeId nodeId, Map<String,LocalResource> localResources) throws YarnException, IOException
      Localize resources for a container.
      Parameters:
      containerId - the ID of the container
      nodeId - node Id of the container
      localResources - resources to localize
      Throws:
      YarnException
      IOException
    • getLocalizationStatuses

      @Unstable public List<LocalizationStatus> getLocalizationStatuses(ContainerId containerId, NodeId nodeId) throws YarnException, IOException
      Get the localization statuses of a container.
      Parameters:
      containerId - the Id of the container
      nodeId - node Id of the container
      Returns:
      the status of a container.
      Throws:
      YarnException - YarnException.
      IOException - IOException.