Class AbstractLauncher

java.lang.Object
org.apache.hadoop.yarn.service.containerlaunch.AbstractLauncher

public class AbstractLauncher extends Object
Launcher of applications: base class
  • Field Details

    • CLASSPATH

      public static final String CLASSPATH
      See Also:
    • ENV_DOCKER_CONTAINER_MOUNTS

      public static final String ENV_DOCKER_CONTAINER_MOUNTS
      See Also:
    • envVars

      protected final Map<String,String> envVars
      Env vars; set up at final launch stage
    • containerLaunchContext

      protected final org.apache.hadoop.yarn.api.records.ContainerLaunchContext containerLaunchContext
    • commands

      protected final List<String> commands
    • localResources

      protected final Map<String,org.apache.hadoop.yarn.api.records.LocalResource> localResources
    • mountPaths

      protected final Map<String,String> mountPaths
    • yarnDockerMode

      protected boolean yarnDockerMode
    • dockerImage

      protected String dockerImage
    • dockerNetwork

      protected String dockerNetwork
    • dockerHostname

      protected String dockerHostname
    • runPrivilegedContainer

      protected boolean runPrivilegedContainer
  • Constructor Details

    • AbstractLauncher

      public AbstractLauncher(org.apache.hadoop.yarn.service.ServiceContext context)
  • Method Details

    • setYarnDockerMode

      public void setYarnDockerMode(boolean yarnDockerMode)
    • getEnv

      public Map<String,String> getEnv()
      Get the env vars to work on
      Returns:
      env vars
    • getCommands

      public List<String> getCommands()
      Get the launch commands.
      Returns:
      the live list of commands
    • addLocalResource

      public void addLocalResource(String subPath, org.apache.hadoop.yarn.api.records.LocalResource resource)
    • addLocalResource

      public void addLocalResource(String subPath, org.apache.hadoop.yarn.api.records.LocalResource resource, String mountPath)
    • addCommand

      public void addCommand(String cmd)
    • completeContainerLaunch

      public org.apache.hadoop.yarn.api.records.ContainerLaunchContext completeContainerLaunch() throws IOException
      Complete the launch context (copy in env vars, etc).
      Returns:
      the container to launch
      Throws:
      IOException
    • setRetryContext

      public void setRetryContext(int maxRetries, int retryInterval, long failuresValidityInterval)
    • propagateUsernameInInsecureCluster

      protected void propagateUsernameInInsecureCluster() throws IOException
      This is critical for an insecure cluster -it passes down the username to YARN, and so gives the code running in containers the rights it needs to work with data.
      Throws:
      IOException - problems working with current user
    • setClasspath

      public void setClasspath(ClasspathConstructor classpath)
      Utility method to set up the classpath
      Parameters:
      classpath - classpath to use
    • setEnv

      public void setEnv(String var, String value)
      Set an environment variable in the launch context
      Parameters:
      var - variable name
      value - value (must be non null)
    • putEnv

      public void putEnv(Map<String,String> map)
    • setDockerImage

      public void setDockerImage(String dockerImage)
    • setDockerNetwork

      public void setDockerNetwork(String dockerNetwork)
    • setDockerHostname

      public void setDockerHostname(String dockerHostname)
    • setRunPrivilegedContainer

      public void setRunPrivilegedContainer(boolean runPrivilegedContainer)
    • getDockerImage

      @VisibleForTesting public String getDockerImage()