public final <T> ConfigurationModuleBuilder bindImplementation(final Class<T> iface, final Class<? extends T> impl) { final ConfigurationModuleBuilder c = deepCopy(); try { c.b.bindImplementation(iface, impl); } catch (final BindException e) { throw new ClassHierarchyException(e); } return c; }
final BroadcastOperatorSpec broadcastOperatorSpec = (BroadcastOperatorSpec) operatorSpec; if (taskId.equals(broadcastOperatorSpec.getSenderId())) { jcb.bindImplementation(GroupCommOperator.class, BroadcastSender.class); } else { jcb.bindImplementation(GroupCommOperator.class, BroadcastReceiver.class); jcb.bindNamedParameter(ReduceFunctionParam.class, reduceOperatorSpec.getRedFuncClass()); if (taskId.equals(reduceOperatorSpec.getReceiverId())) { jcb.bindImplementation(GroupCommOperator.class, ReduceReceiver.class); } else { jcb.bindImplementation(GroupCommOperator.class, ReduceSender.class); jcb.bindImplementation(GroupCommOperator.class, ScatterSender.class); } else { jcb.bindImplementation(GroupCommOperator.class, ScatterReceiver.class); jcb.bindImplementation(GroupCommOperator.class, GatherReceiver.class); } else { jcb.bindImplementation(GroupCommOperator.class, GatherSender.class);
/** * 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(); }
final BroadcastOperatorSpec broadcastOperatorSpec = (BroadcastOperatorSpec) operatorSpec; if (taskId.equals(broadcastOperatorSpec.getSenderId())) { jcb.bindImplementation(GroupCommOperator.class, BroadcastSender.class); } else { jcb.bindImplementation(GroupCommOperator.class, BroadcastReceiver.class); jcb.bindNamedParameter(ReduceFunctionParam.class, reduceOperatorSpec.getRedFuncClass()); if (taskId.equals(reduceOperatorSpec.getReceiverId())) { jcb.bindImplementation(GroupCommOperator.class, ReduceReceiver.class); } else { jcb.bindImplementation(GroupCommOperator.class, ReduceSender.class); jcb.bindImplementation(GroupCommOperator.class, ScatterSender.class); } else { jcb.bindImplementation(GroupCommOperator.class, ScatterReceiver.class); jcb.bindImplementation(GroupCommOperator.class, GatherReceiver.class); } else { jcb.bindImplementation(GroupCommOperator.class, GatherSender.class);
/** * Generates configuration that allows multi runtime to run on Yarn. * MultiRuntimeMainConfigurationGenerator. * @return Instance of <code>Configuration</code> */ @Override public Configuration getMainConfiguration() { return Tang.Factory.getTang().newConfigurationBuilder() .bindImplementation(RuntimeClasspathProvider.class, YarnClasspathProvider.class) .bindConstructor(org.apache.hadoop.yarn.conf.YarnConfiguration.class, YarnConfigurationConstructor.class) .build(); } }
/** * Fetch scheduler configuration. * @param jobConf job configuration. * @return the scheduler configuration. * @throws ClassNotFoundException exception while finding the class. * @throws InjectionException exception while injection (REEF Tang). */ private static Configuration getSchedulerConf(final Configuration jobConf) throws ClassNotFoundException, InjectionException { final Injector injector = TANG.newInjector(jobConf); final String classImplName = injector.getNamedInstance(JobConf.SchedulerImplClassName.class); final JavaConfigurationBuilder jcb = Tang.Factory.getTang().newConfigurationBuilder(); final Class schedulerImpl = ((Class<Scheduler>) Class.forName(classImplName)); jcb.bindImplementation(Scheduler.class, schedulerImpl); return jcb.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(); }
/** * Get driver ncs configuration. * * @return driver ncs configuration. * @throws InjectionException exception while injection. */ private static Configuration getDriverNcsConf() throws InjectionException { return Configurations.merge(NameServerConfiguration.CONF.build(), LocalNameResolverConfiguration.CONF.build(), TANG.newConfigurationBuilder() .bindImplementation(IdentifierFactory.class, StringIdentifierFactory.class) .build()); }
conf = conf.bindImplementation(MultiRuntimeMainConfigurationGenerator.class, YarnMultiRuntimeMainConfigurationGeneratorImpl.class);
Tang.Factory.getTang().newConfigurationBuilder() .bindNamedParameter(RuntimeName.class, rd.getRuntimeName().toString()) .bindImplementation(Runtime.class, RuntimeImpl.class) .build();
jcb.bindImplementation(EvaluatorToPartitionStrategy.class, SingleDataCenterEvaluatorToPartitionStrategy.class); } else { jcb.bindImplementation(EvaluatorToPartitionStrategy.class, MultiDataCenterEvaluatorToPartitionStrategy.class); return jcb.bindImplementation(DataLoadingService.class, InputFormatLoadingService.class).build();
@Override public Configuration getServiceConfiguration(final AllocatedEvaluator allocatedEvaluator) { try { final NumberedSplit<InputSplit> numberedSplit = this.evaluatorToPartitionStrategy.getInputSplit( allocatedEvaluator.getEvaluatorDescriptor().getNodeDescriptor(), allocatedEvaluator.getId()); final Configuration serviceConfiguration = ServiceConfiguration.CONF .set(ServiceConfiguration.SERVICES, this.inMemory ? InMemoryInputFormatDataSet.class : InputFormatDataSet.class) .build(); return Tang.Factory.getTang().newConfigurationBuilder(serviceConfiguration) .bindImplementation( DataSet.class, this.inMemory ? InMemoryInputFormatDataSet.class : InputFormatDataSet.class) .bindNamedParameter(JobConfExternalConstructor.InputFormatClass.class, inputFormatClass) .bindNamedParameter(JobConfExternalConstructor.InputPath.class, numberedSplit.getPath()) .bindNamedParameter( InputSplitExternalConstructor.SerializedInputSplit.class, WritableSerializer.serialize(numberedSplit.getEntry())) .bindConstructor(InputSplit.class, InputSplitExternalConstructor.class) .bindConstructor(JobConf.class, JobConfExternalConstructor.class) .build(); } catch (final BindException ex) { final String evalId = allocatedEvaluator.getId(); final String msg = "Unable to create configuration for evaluator " + evalId; LOG.log(Level.WARNING, msg, ex); throw new RuntimeException(msg, ex); } }