Class AuxiliaryService

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

@Public @Evolving public abstract class AuxiliaryService extends org.apache.hadoop.service.AbstractService
A generic service that will be started by the NodeManager. This is a service that administrators have to configure on each node by setting YarnConfiguration.NM_AUX_SERVICES.
  • Constructor Details

    • AuxiliaryService

      protected AuxiliaryService(String name)
  • Method Details

    • getRecoveryPath

      protected org.apache.hadoop.fs.Path getRecoveryPath()
      Get the path specific to this auxiliary service to use for recovery.
      Returns:
      state storage path or null if recovery is not enabled
    • initializeApplication

      public abstract void initializeApplication(ApplicationInitializationContext initAppContext)
      A new application is started on this NodeManager. This is a signal to this AuxiliaryService about the application initialization.
      Parameters:
      initAppContext - context for the application's initialization
    • stopApplication

      public abstract void stopApplication(ApplicationTerminationContext stopAppContext)
      An application is finishing on this NodeManager. This is a signal to this AuxiliaryService about the same.
      Parameters:
      stopAppContext - context for the application termination
    • getMetaData

      public abstract ByteBuffer getMetaData()
      Retrieve meta-data for this AuxiliaryService. Applications using this AuxiliaryService SHOULD know the format of the meta-data - ideally each service should provide a method to parse out the information to the applications. One example of meta-data is contact information so that applications can access the service remotely. This will only be called after the service's AbstractService.start() method has finished. the result may be cached.

      The information is passed along to applications via StartContainersResponse.getAllServicesMetaData() that is returned by ContainerManagementProtocol.startContainers(StartContainersRequest)

      Returns:
      meta-data for this service that should be made available to applications.
    • initializeContainer

      public void initializeContainer(ContainerInitializationContext initContainerContext)
      A new container is started on this NodeManager. This is a signal to this AuxiliaryService about the container initialization. This method is called when the NodeManager receives the container launch command from the ApplicationMaster and before the container process is launched.
      Parameters:
      initContainerContext - context for the container's initialization
    • stopContainer

      public void stopContainer(ContainerTerminationContext stopContainerContext)
      A container is finishing on this NodeManager. This is a signal to this AuxiliaryService about the same.
      Parameters:
      stopContainerContext - context for the container termination
    • setRecoveryPath

      public void setRecoveryPath(org.apache.hadoop.fs.Path recoveryPath)
      Set the path for this auxiliary service to use for storing state that will be used during recovery.
      Parameters:
      recoveryPath - where recoverable state should be stored
    • getAuxiliaryLocalPathHandler

      public AuxiliaryLocalPathHandler getAuxiliaryLocalPathHandler()
      Method that gets the local dirs path handler for this Auxiliary Service.
      Returns:
      auxiliaryPathHandler object that is used to read from and write to valid local Dirs.
    • setAuxiliaryLocalPathHandler

      public void setAuxiliaryLocalPathHandler(AuxiliaryLocalPathHandler auxiliaryLocalPathHandler)
      Method that sets the local dirs path handler for this Auxiliary Service.
      Parameters:
      auxiliaryLocalPathHandler - the pathHandler for this auxiliary service