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 protected
ContainerLauncher()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Container
launchContainer(int port, LocalAssignment assignment, LocalState state)
Launch a container in a given slot.static ContainerLauncher
make(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 Container
recoverContainer(int port, LocalAssignment assignment, LocalState state)
Recover a container for a running process.abstract Killable
recoverContainer(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
-
-