/** * returns a configuration for the class that implements TcpPortProvider so that class can be instantiated. * somewhere else * * @return Configuration. */ @Override public Configuration getConfiguration() { return Tang.Factory.getTang().newConfigurationBuilder() .bindNamedParameter(TcpPortRangeBegin.class, String.valueOf(portRangeBegin)) .bindNamedParameter(TcpPortRangeCount.class, String.valueOf(portRangeCount)) .bindNamedParameter(TcpPortRangeTryCount.class, String.valueOf(portRangeTryCount)) .bindSetEntry(EvaluatorConfigurationProviders.class, TcpPortConfigurationProvider.class) .build(); }
public final <T> ConfigurationModuleBuilder bindNamedParameter( final Class<? extends Name<T>> iface, final Class<? extends T> impl) { final ConfigurationModuleBuilder c = deepCopy(); try { c.b.bindNamedParameter(iface, impl); } catch (final BindException e) { throw new ClassHierarchyException(e); } return c; }
public final <T> ConfigurationModuleBuilder bindNamedParameter( final Class<? extends Name<T>> name, final String value) { final ConfigurationModuleBuilder c = deepCopy(); try { c.b.bindNamedParameter(name, value); } catch (final BindException e) { throw new ClassHierarchyException(e); } return c; }
/** * Get driver message configuration. * * @return driver message configuration. * @throws InjectionException exception while injection. */ private static Configuration getDriverMessageConf() throws InjectionException { return TANG.newConfigurationBuilder() .bindNamedParameter(MessageParameters.SenderId.class, MessageEnvironment.MASTER_COMMUNICATION_ID) .build(); }
/** * @return the configuration for RPC server listening information */ public Configuration getListeningConfiguration() { return Tang.Factory.getTang().newConfigurationBuilder() .bindNamedParameter(JobConf.ClientSideRPCServerHost.class, getListeningHost()) .bindNamedParameter(JobConf.ClientSideRPCServerPort.class, String.valueOf(getListeningPort())) .build(); }
private Configuration getExecutorNcsConfiguration() { return Tang.Factory.getTang().newConfigurationBuilder() .bindNamedParameter(NameResolverNameServerPort.class, Integer.toString(nameServer.getPort())) .bindNamedParameter(NameResolverNameServerAddr.class, localAddressProvider.getLocalAddress()) .bindImplementation(IdentifierFactory.class, StringIdentifierFactory.class) .build(); }
private Configuration getExecutorNcsConfiguration() { return Tang.Factory.getTang().newConfigurationBuilder() .bindNamedParameter(NameResolverNameServerPort.class, Integer.toString(nameServer.getPort())) .bindNamedParameter(NameResolverNameServerAddr.class, localAddressProvider.getLocalAddress()) .bindImplementation(IdentifierFactory.class, StringIdentifierFactory.class) .build(); }
/** * Read json file and return its contents as configuration parameter. * * @param jobConf job configuration to get json path. * @param pathParameter named parameter represents path to the json file, or an empty string * @param contentsParameter named parameter represents contents of the file * @param defaultContent the default configuration * @return configuration with contents of the file, or an empty string as value for {@code contentsParameter} * @throws InjectionException exception while injection. */ private static Configuration getJSONConf(final Configuration jobConf, final Class<? extends Name<String>> pathParameter, final Class<? extends Name<String>> contentsParameter, final String defaultContent) throws InjectionException { final Injector injector = TANG.newInjector(jobConf); try { final String path = injector.getNamedInstance(pathParameter); final String contents = path.isEmpty() ? defaultContent : new String(Files.readAllBytes(Paths.get(path)), StandardCharsets.UTF_8); return TANG.newConfigurationBuilder() .bindNamedParameter(contentsParameter, contents) .build(); } catch (final IOException e) { throw new RuntimeException(e); } }
@Override public Configuration getServiceConfiguration() { LOG.entering("GroupCommDriverImpl", "getServiceConf"); final Configuration serviceConfiguration = ServiceConfiguration.CONF.set(ServiceConfiguration.SERVICES, NetworkService.class) .set(ServiceConfiguration.SERVICES, GroupCommNetworkHandlerImpl.class) .set(ServiceConfiguration.ON_CONTEXT_STOP, NetworkServiceClosingHandler.class) .set(ServiceConfiguration.ON_TASK_STARTED, BindNSToTask.class) .set(ServiceConfiguration.ON_TASK_STOP, UnbindNSFromTask.class).build(); final Configuration retVal = TANG.newConfigurationBuilder(serviceConfiguration) .bindNamedParameter(NetworkServiceParameters.NetworkServiceCodec.class, GroupCommunicationMessageCodec.class) .bindNamedParameter(NetworkServiceParameters.NetworkServiceHandler.class, GroupCommNetworkHandlerImpl.class) .bindNamedParameter(NetworkServiceParameters.NetworkServiceExceptionHandler.class, ExceptionHandler.class) .bindNamedParameter(NameResolverNameServerAddr.class, nameServiceAddr) .bindNamedParameter(NameResolverNameServerPort.class, Integer.toString(nameServicePort)) .bindNamedParameter(NetworkServiceParameters.NetworkServicePort.class, "0").build(); LOG.exiting("GroupCommDriverImpl", "getServiceConf", confSerializer.toString(retVal)); return retVal; }
private Configuration getExecutorMessageConfiguration(final String executorId) { return Tang.Factory.getTang().newConfigurationBuilder() .bindNamedParameter(MessageParameters.SenderId.class, executorId) .build(); } }
private Configuration getExecutorMessageConfiguration(final String executorId) { return Tang.Factory.getTang().newConfigurationBuilder() .bindNamedParameter(MessageParameters.SenderId.class, executorId) .build(); } }
/** * @return client configuration. */ private static Configuration getClientConf() { final JavaConfigurationBuilder jcb = Tang.Factory.getTang().newConfigurationBuilder(); jcb.bindNamedParameter(JobMessageHandler.class, NemoClient.JobMessageHandler.class); return jcb.build(); }
/** * Extends {@code baseInjector} to have {@link LocalMessageEnvironment} instance for the given {@code senderId}. * * @param baseInjector provided by {@link LocalMessageDispatcher#getInjector()} * or {@link LocalMessageDispatcher#forkInjector(Injector)} * @param senderId the identifier for the sender * @return an {@link Injector} which has {@link LocalMessageDispatcher} instance for {@link MessageEnvironment} * @throws InjectionException when fails to inject {@link MessageEnvironment} */ public static Injector forkInjector(final Injector baseInjector, final String senderId) throws InjectionException { final Injector injector = baseInjector.forkInjector(TANG.newConfigurationBuilder() .bindNamedParameter(MessageParameters.SenderId.class, senderId).build()); injector.getInstance(MessageEnvironment.class); return injector; } }
/** * Provides a service configuration for the output service. * * @return service configuration. */ @Override public Configuration getServiceConfiguration() { final Configuration partialServiceConf = ServiceConfiguration.CONF .set(ServiceConfiguration.SERVICES, taskOutputStreamProvider.getClass()) .set(ServiceConfiguration.ON_CONTEXT_STOP, ContextStopHandler.class) .set(ServiceConfiguration.ON_TASK_STARTED, TaskStartHandler.class) .build(); return Tang.Factory.getTang() .newConfigurationBuilder(partialServiceConf) .bindImplementation(OutputStreamProvider.class, taskOutputStreamProvider.getClass()) .bindImplementation(TaskOutputStreamProvider.class, taskOutputStreamProvider.getClass()) .bindNamedParameter(OutputPath.class, outputPath) .build(); }
/** * Extends {@code baseInjector} to have {@link LocalMessageEnvironment} instance for the given {@code senderId}. * * @param baseInjector provided by {@link LocalMessageDispatcher#getInjector()} * or {@link LocalMessageDispatcher#forkInjector(Injector)} * @param senderId the identifier for the sender * @return an {@link Injector} which has {@link LocalMessageDispatcher} instance for {@link MessageEnvironment} * @throws InjectionException when fails to inject {@link MessageEnvironment} */ public static Injector forkInjector(final Injector baseInjector, final String senderId) throws InjectionException { final Injector injector = baseInjector.forkInjector(TANG.newConfigurationBuilder() .bindNamedParameter(MessageParameters.SenderId.class, senderId).build()); injector.getInstance(MessageEnvironment.class); return injector; } }
/** * Take the necessary actions in container manager once a container a is allocated. * @param executorId of the executor to launch on this container. * @param allocatedContainer the allocated container. * @param executorConfiguration executor related configuration. */ public void onContainerAllocated(final String executorId, final AllocatedEvaluator allocatedContainer, final Configuration executorConfiguration) { if (isTerminated) { LOG.info("ContainerManager is terminated, closing {}", allocatedContainer.getId()); allocatedContainer.close(); return; } final ResourceSpecification resourceSpecification = selectResourceSpecForContainer(); evaluatorIdToResourceSpec.put(allocatedContainer.getId(), resourceSpecification); LOG.info("Container type (" + resourceSpecification.getContainerType() + ") allocated, will be used for [" + executorId + "]"); pendingContextIdToResourceSpec.put(executorId, resourceSpecification); // Poison handling final Configuration poisonConfiguration = Tang.Factory.getTang().newConfigurationBuilder() .bindNamedParameter(JobConf.ExecutorPosionSec.class, String.valueOf(resourceSpecification.getPoisonSec())) .build(); allocatedContainer.submitContext(Configurations.merge(executorConfiguration, poisonConfiguration)); }
/** * Take the necessary actions in container manager once a container a is allocated. * @param executorId of the executor to launch on this container. * @param allocatedContainer the allocated container. * @param executorConfiguration executor related configuration. */ public void onContainerAllocated(final String executorId, final AllocatedEvaluator allocatedContainer, final Configuration executorConfiguration) { if (isTerminated) { LOG.info("ContainerManager is terminated, closing {}", allocatedContainer.getId()); allocatedContainer.close(); return; } final ResourceSpecification resourceSpecification = selectResourceSpecForContainer(); evaluatorIdToResourceSpec.put(allocatedContainer.getId(), resourceSpecification); LOG.info("Container type (" + resourceSpecification.getContainerType() + ") allocated, will be used for [" + executorId + "]"); pendingContextIdToResourceSpec.put(executorId, resourceSpecification); // Poison handling final Configuration poisonConfiguration = Tang.Factory.getTang().newConfigurationBuilder() .bindNamedParameter(JobConf.ExecutorPosionSec.class, String.valueOf(resourceSpecification.getPoisonSec())) .build(); allocatedContainer.submitContext(Configurations.merge(executorConfiguration, poisonConfiguration)); }
/** * Instantiate REEF Launcher. This method is called from REEFLauncher.main(). * @param clockConfigPath Path to the local file that contains serialized configuration * of a REEF component to launch (can be either Driver or Evaluator). * @return An instance of the configured REEFLauncher object. */ private static REEFLauncher getREEFLauncher(final String clockConfigPath) { try { final Configuration clockArgConfig = TANG.newConfigurationBuilder() .bindNamedParameter(ClockConfigurationPath.class, clockConfigPath) .build(); return TANG.newInjector(clockArgConfig).getInstance(REEFLauncher.class); } catch (final BindException ex) { throw fatal("Error in parsing the command line", ex); } catch (final InjectionException ex) { throw fatal("Unable to instantiate REEFLauncher.", ex); } }
public static Configuration getConfiguration(final int fanOut) { LOG.entering("GroupCommService", "getConfiguration", fanOut); final Configuration baseConf = getConfiguration(); final Configuration retConf = Tang.Factory.getTang().newConfigurationBuilder(baseConf) .bindNamedParameter(TreeTopologyFanOut.class, Integer.toString(fanOut)).build(); LOG.exiting("GroupCommService", "getConfiguration", CONF_SER.toString(retConf)); return retConf; }
public static Configuration getConfiguration() { LOG.entering("GroupCommService", "getConfiguration"); final JavaConfigurationBuilder jcb = Tang.Factory.getTang().newConfigurationBuilder(); jcb.bindSetEntry(TaskRunningHandlers.class, RunningTaskHandler.class); jcb.bindSetEntry(ServiceTaskFailedHandlers.class, FailedTaskHandler.class); jcb.bindSetEntry(ServiceEvaluatorFailedHandlers.class, FailedEvaluatorHandler.class); jcb.bindNamedParameter(EvaluatorDispatcherThreads.class, "1"); final Configuration retVal = jcb.build(); LOG.exiting("GroupCommService", "getConfiguration", CONF_SER.toString(retVal)); return retVal; }