Class ContainerLauncher

    • Constructor Detail

      • ContainerLauncher

        protected ContainerLauncher()
    • 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 config
        supervisorId - the ID of the supervisor
        supervisorPort - the parent supervisor thrift server port
        sharedContext - Used in local mode to let workers talk together without netty
        metricsRegistry - The metrics registry.
        containerMemoryTracker - The shared memory tracker for the supervisor's containers
        localSupervisor - 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 on
        assignment - what to launch
        state - 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 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 use
        localState - the state of the running supervisor
        Returns:
        a Killable that can be used to kill the underlying container.
        Throws:
        IOException - on any error
        ContainerRecoveryException - if the Container could not be recovered