java.util.concurrent.Callable<java.lang.Integer>ContainerRelaunch, RecoveredContainerLaunch, RecoverPausedContainerLaunchpublic class ContainerLaunch
extends java.lang.Object
implements java.util.concurrent.Callable<java.lang.Integer>
| Modifier and Type | Class | Description |
|---|---|---|
static class |
ContainerLaunch.ShellScriptBuilder |
| Modifier and Type | Field | Description |
|---|---|---|
protected Application |
app |
|
protected java.util.concurrent.atomic.AtomicBoolean |
completed |
|
protected Container |
container |
|
static java.lang.String |
CONTAINER_PRE_LAUNCH_STDERR |
|
static java.lang.String |
CONTAINER_PRE_LAUNCH_STDOUT |
|
static java.lang.String |
CONTAINER_SCRIPT |
|
protected java.util.concurrent.atomic.AtomicBoolean |
containerAlreadyLaunched |
|
protected LocalDirsHandlerService |
dirsHandler |
|
protected org.apache.hadoop.yarn.event.Dispatcher |
dispatcher |
|
protected ContainerExecutor |
exec |
|
static java.lang.String |
FINAL_CONTAINER_TOKENS_FILE |
|
static java.lang.String |
KEYSTORE_FILE |
|
protected org.apache.hadoop.fs.Path |
pidFilePath |
|
protected java.util.concurrent.atomic.AtomicBoolean |
shouldPauseContainer |
|
static java.lang.String |
SYSFS_DIR |
|
static java.lang.String |
TRUSTSTORE_FILE |
| Constructor | Description |
|---|---|
ContainerLaunch(Context context,
org.apache.hadoop.conf.Configuration configuration,
org.apache.hadoop.yarn.event.Dispatcher dispatcher,
ContainerExecutor exec,
Application app,
Container container,
LocalDirsHandlerService dirsHandler,
ContainerManagerImpl containerManager) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
addConfigsToEnv(java.util.Map<java.lang.String,java.lang.String> environment) |
There are some configurations (such as "yarn.nodemanager.admin-env") whose
values need to be added to the environment variables.
|
java.lang.Integer |
call() |
|
protected void |
cleanupContainerFiles(org.apache.hadoop.fs.Path containerWorkDir) |
Clean up container's files for container relaunch or cleanup.
|
static java.lang.String |
expandEnvironment(java.lang.String var,
org.apache.hadoop.fs.Path containerLogDir) |
|
protected java.util.List<java.lang.String> |
getApplicationLocalDirs(java.util.List<java.lang.String> localDirs,
java.lang.String appIdStr) |
|
protected java.util.List<java.lang.String> |
getContainerLocalDirs(java.util.List<java.lang.String> localDirs) |
|
protected java.util.List<java.lang.String> |
getContainerLogDirs(java.util.List<java.lang.String> logDirs) |
|
protected java.lang.String |
getContainerPrivateDir(java.lang.String appIdStr,
java.lang.String containerIdStr) |
|
protected org.apache.hadoop.fs.Path |
getContainerWorkDir() |
|
static java.lang.String |
getExitCodeFile(java.lang.String pidFile) |
|
protected java.util.Map<org.apache.hadoop.fs.Path,java.util.List<java.lang.String>> |
getLocalizedResources() |
|
protected java.util.List<java.lang.String> |
getNMFilecacheDirs(java.util.List<java.lang.String> localDirs) |
|
protected java.lang.String |
getPidFileSubpath(java.lang.String appIdStr,
java.lang.String containerIdStr) |
|
static java.lang.String |
getRelativeContainerLogDir(java.lang.String appIdStr,
java.lang.String containerIdStr) |
|
protected java.util.List<java.lang.String> |
getUserFilecacheDirs(java.util.List<java.lang.String> localDirs) |
|
protected java.util.List<java.lang.String> |
getUserLocalDirs(java.util.List<java.lang.String> localDirs) |
|
protected void |
handleContainerExitCode(int exitCode,
org.apache.hadoop.fs.Path containerLogDir) |
|
protected void |
handleContainerExitWithFailure(org.apache.hadoop.yarn.api.records.ContainerId containerID,
int ret,
org.apache.hadoop.fs.Path containerLogDir,
java.lang.StringBuilder diagnosticInfo) |
Tries to tail and fetch TAIL_SIZE_IN_BYTES of data from the error log.
|
protected int |
launchContainer(ContainerStartContext ctx) |
|
void |
pauseContainer() |
Pause the container.
|
protected int |
prepareForLaunch(ContainerStartContext ctx) |
|
protected int |
relaunchContainer(ContainerStartContext ctx) |
|
void |
resumeContainer() |
Resume the container.
|
void |
sanitizeEnv(java.util.Map<java.lang.String,java.lang.String> environment,
org.apache.hadoop.fs.Path pwd,
java.util.List<org.apache.hadoop.fs.Path> appDirs,
java.util.List<java.lang.String> userLocalDirs,
java.util.List<java.lang.String> containerLogDirs,
java.util.Map<org.apache.hadoop.fs.Path,java.util.List<java.lang.String>> resources,
org.apache.hadoop.fs.Path nmPrivateClasspathJarDir,
java.util.Set<java.lang.String> nmVars) |
|
protected void |
setContainerCompletedStatus(int exitCode) |
|
void |
signalContainer(org.apache.hadoop.yarn.api.records.SignalContainerCommand command) |
Send a signal to the container.
|
static ContainerExecutor.Signal |
translateCommandToSignal(org.apache.hadoop.yarn.api.records.SignalContainerCommand command) |
|
protected boolean |
validateContainerState() |
public static final java.lang.String CONTAINER_PRE_LAUNCH_STDOUT
public static final java.lang.String CONTAINER_PRE_LAUNCH_STDERR
public static final java.lang.String CONTAINER_SCRIPT
public static final java.lang.String FINAL_CONTAINER_TOKENS_FILE
public static final java.lang.String SYSFS_DIR
public static final java.lang.String KEYSTORE_FILE
public static final java.lang.String TRUSTSTORE_FILE
protected final org.apache.hadoop.yarn.event.Dispatcher dispatcher
protected final ContainerExecutor exec
protected final Application app
protected final Container container
protected java.util.concurrent.atomic.AtomicBoolean containerAlreadyLaunched
protected java.util.concurrent.atomic.AtomicBoolean shouldPauseContainer
protected java.util.concurrent.atomic.AtomicBoolean completed
protected org.apache.hadoop.fs.Path pidFilePath
protected final LocalDirsHandlerService dirsHandler
public ContainerLaunch(Context context, org.apache.hadoop.conf.Configuration configuration, org.apache.hadoop.yarn.event.Dispatcher dispatcher, ContainerExecutor exec, Application app, Container container, LocalDirsHandlerService dirsHandler, ContainerManagerImpl containerManager)
@VisibleForTesting
public static java.lang.String expandEnvironment(java.lang.String var,
org.apache.hadoop.fs.Path containerLogDir)
public java.lang.Integer call()
call in interface java.util.concurrent.Callable<java.lang.Integer>protected boolean validateContainerState()
protected java.util.List<java.lang.String> getContainerLogDirs(java.util.List<java.lang.String> logDirs)
protected java.util.List<java.lang.String> getContainerLocalDirs(java.util.List<java.lang.String> localDirs)
protected java.util.List<java.lang.String> getUserLocalDirs(java.util.List<java.lang.String> localDirs)
protected java.util.List<java.lang.String> getNMFilecacheDirs(java.util.List<java.lang.String> localDirs)
protected java.util.List<java.lang.String> getUserFilecacheDirs(java.util.List<java.lang.String> localDirs)
protected java.util.List<java.lang.String> getApplicationLocalDirs(java.util.List<java.lang.String> localDirs,
java.lang.String appIdStr)
protected java.util.Map<org.apache.hadoop.fs.Path,java.util.List<java.lang.String>> getLocalizedResources()
throws org.apache.hadoop.yarn.exceptions.YarnException
org.apache.hadoop.yarn.exceptions.YarnExceptionprotected int launchContainer(ContainerStartContext ctx) throws java.io.IOException, org.apache.hadoop.yarn.exceptions.ConfigurationException
java.io.IOExceptionorg.apache.hadoop.yarn.exceptions.ConfigurationExceptionprotected int relaunchContainer(ContainerStartContext ctx) throws java.io.IOException, org.apache.hadoop.yarn.exceptions.ConfigurationException
java.io.IOExceptionorg.apache.hadoop.yarn.exceptions.ConfigurationExceptionprotected int prepareForLaunch(ContainerStartContext ctx) throws java.io.IOException
java.io.IOExceptionprotected void setContainerCompletedStatus(int exitCode)
protected void handleContainerExitCode(int exitCode,
org.apache.hadoop.fs.Path containerLogDir)
protected void handleContainerExitWithFailure(org.apache.hadoop.yarn.api.records.ContainerId containerID,
int ret,
org.apache.hadoop.fs.Path containerLogDir,
java.lang.StringBuilder diagnosticInfo)
containerID - ret - containerLogDir - diagnosticInfo - protected java.lang.String getPidFileSubpath(java.lang.String appIdStr,
java.lang.String containerIdStr)
public void signalContainer(org.apache.hadoop.yarn.api.records.SignalContainerCommand command)
throws java.io.IOException
java.io.IOException@VisibleForTesting public static ContainerExecutor.Signal translateCommandToSignal(org.apache.hadoop.yarn.api.records.SignalContainerCommand command)
public void pauseContainer()
throws java.io.IOException
java.io.IOException - in case of errors.public void resumeContainer()
throws java.io.IOException
java.io.IOException - in case of error.public static java.lang.String getRelativeContainerLogDir(java.lang.String appIdStr,
java.lang.String containerIdStr)
protected java.lang.String getContainerPrivateDir(java.lang.String appIdStr,
java.lang.String containerIdStr)
public void sanitizeEnv(java.util.Map<java.lang.String,java.lang.String> environment,
org.apache.hadoop.fs.Path pwd,
java.util.List<org.apache.hadoop.fs.Path> appDirs,
java.util.List<java.lang.String> userLocalDirs,
java.util.List<java.lang.String> containerLogDirs,
java.util.Map<org.apache.hadoop.fs.Path,java.util.List<java.lang.String>> resources,
org.apache.hadoop.fs.Path nmPrivateClasspathJarDir,
java.util.Set<java.lang.String> nmVars)
throws java.io.IOException
java.io.IOExceptionpublic void addConfigsToEnv(java.util.Map<java.lang.String,java.lang.String> environment)
environment - The environment variables map to add the configuration values to.public static java.lang.String getExitCodeFile(java.lang.String pidFile)
protected org.apache.hadoop.fs.Path getContainerWorkDir()
throws java.io.IOException
java.io.IOExceptionprotected void cleanupContainerFiles(org.apache.hadoop.fs.Path containerWorkDir)
Copyright © 2008–2025 Apache Software Foundation. All rights reserved.