Search in sources :

Example 1 with DefaultResourceIsolationManager

use of org.apache.storm.container.DefaultResourceIsolationManager in project storm by apache.

the class ContainerLauncher method make.

/**
 * Factory to create the right container launcher
 * for the config and the environment.
 * @param conf the config
 * @param supervisorId the ID of the supervisor
 * @param supervisorPort the parent supervisor thrift server port
 * @param sharedContext Used in local mode to let workers talk together without netty
 * @param metricsRegistry The metrics registry.
 * @param containerMemoryTracker The shared memory tracker for the supervisor's containers
 * @param localSupervisor The local supervisor Thrift interface. Only used for local clusters, distributed clusters use Thrift directly.
 * @return the proper container launcher
 * @throws IOException on any error
 */
public static ContainerLauncher make(Map<String, Object> conf, String supervisorId, int supervisorPort, IContext sharedContext, StormMetricsRegistry metricsRegistry, ContainerMemoryTracker containerMemoryTracker, org.apache.storm.generated.Supervisor.Iface localSupervisor) throws IOException {
    if (ConfigUtils.isLocalMode(conf)) {
        return new LocalContainerLauncher(conf, supervisorId, supervisorPort, sharedContext, metricsRegistry, containerMemoryTracker, localSupervisor);
    }
    ResourceIsolationInterface resourceIsolationManager;
    if (ObjectReader.getBoolean(conf.get(DaemonConfig.STORM_RESOURCE_ISOLATION_PLUGIN_ENABLE), false)) {
        resourceIsolationManager = ReflectionUtils.newInstance((String) conf.get(DaemonConfig.STORM_RESOURCE_ISOLATION_PLUGIN));
        LOG.info("Using resource isolation plugin {}: {}", conf.get(DaemonConfig.STORM_RESOURCE_ISOLATION_PLUGIN), resourceIsolationManager);
    } else {
        resourceIsolationManager = new DefaultResourceIsolationManager();
        LOG.info("{} is false. Using default resource isolation plugin: {}", DaemonConfig.STORM_RESOURCE_ISOLATION_PLUGIN_ENABLE, resourceIsolationManager);
    }
    resourceIsolationManager.prepare(conf);
    return new BasicContainerLauncher(conf, supervisorId, supervisorPort, resourceIsolationManager, metricsRegistry, containerMemoryTracker);
}
Also used : ResourceIsolationInterface(org.apache.storm.container.ResourceIsolationInterface) DefaultResourceIsolationManager(org.apache.storm.container.DefaultResourceIsolationManager)

Aggregations

DefaultResourceIsolationManager (org.apache.storm.container.DefaultResourceIsolationManager)1 ResourceIsolationInterface (org.apache.storm.container.ResourceIsolationInterface)1