Class ContainerLauncher
- java.lang.Object
-
- org.apache.storm.daemon.supervisor.ContainerLauncher
-
- Direct Known Subclasses:
BasicContainerLauncher,LocalContainerLauncher
public abstract class ContainerLauncher extends Object
Launches containers.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedContainerLauncher()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract ContainerlaunchContainer(int port, LocalAssignment assignment, LocalState state)Launch a container in a given slot.static ContainerLaunchermake(Map<String,Object> conf, String supervisorId, int supervisorPort, IContext sharedContext, StormMetricsRegistry metricsRegistry, ContainerMemoryTracker containerMemoryTracker, Supervisor.Iface localSupervisor)Factory to create the right container launcher for the config and the environment.abstract ContainerrecoverContainer(int port, LocalAssignment assignment, LocalState state)Recover a container for a running process.abstract KillablerecoverContainer(String workerId, LocalState localState)Try to recover a container using just the worker ID.
-
-
-
Method Detail
-
make
public static ContainerLauncher make(Map<String,Object> conf, String supervisorId, int supervisorPort, IContext sharedContext, StormMetricsRegistry metricsRegistry, ContainerMemoryTracker containerMemoryTracker, Supervisor.Iface localSupervisor) throws IOException
Factory to create the right container launcher for the config and the environment.- Parameters:
conf- the configsupervisorId- the ID of the supervisorsupervisorPort- the parent supervisor thrift server portsharedContext- Used in local mode to let workers talk together without nettymetricsRegistry- The metrics registry.containerMemoryTracker- The shared memory tracker for the supervisor's containerslocalSupervisor- The local supervisor Thrift interface. Only used for local clusters, distributed clusters use Thrift directly.- Returns:
- the proper container launcher
- Throws:
IOException- on any error
-
launchContainer
public abstract Container launchContainer(int port, LocalAssignment assignment, LocalState state) throws IOException
Launch a container in a given slot.- Parameters:
port- the port to run this onassignment- what to launchstate- the current state of the supervisor- Returns:
- The container that can be used to manager the processes.
- Throws:
IOException- on any error
-
recoverContainer
public abstract Container recoverContainer(int port, LocalAssignment assignment, LocalState state) throws IOException, ContainerRecoveryException
Recover a container for a running process.- Parameters:
port- the port the assignment is running onassignment- the assignment that was launchedstate- the current state of the supervisor- Returns:
- The container that can be used to manage the processes.
- Throws:
IOException- on any errorContainerRecoveryException- if the Container could not be recovered
-
recoverContainer
public abstract Killable recoverContainer(String workerId, LocalState localState) throws IOException, ContainerRecoveryException
Try to recover a container using just the worker ID. The result is really only useful for killing the container and so is returning a Killable. Even if a Container is returned do not case the result to Container because only the Killable APIs are guaranteed to work.- Parameters:
workerId- the id of the worker to uselocalState- the state of the running supervisor- Returns:
- a Killable that can be used to kill the underlying container.
- Throws:
IOException- on any errorContainerRecoveryException- if the Container could not be recovered
-
-