private void setConfigOutputs() { setSerializers(); setCollector(); int numberOfOutputs = configuration.getNumberOfOutputs(); bufferTimeout = configuration.getBufferTimeout(); for (int i = 0; i < numberOfOutputs; i++) { setPartitioner(i, outputs); } }
void setPartitioner( int outputNumber, List<RecordWriter<SerializationDelegate<StreamRecord<OUT>>>> outputs) { StreamPartitioner<OUT> outputPartitioner = null; try { outputPartitioner = configuration.getPartitioner(outputNumber); } catch (Exception e) { throw new StreamComponentException( "Cannot deserialize partitioner for " + streamComponent.getName() + " with " + outputNumber + " outputs", e); } RecordWriter<SerializationDelegate<StreamRecord<OUT>>> output; if (bufferTimeout > 0) { output = new StreamRecordWriter<SerializationDelegate<StreamRecord<OUT>>>( streamComponent, outputPartitioner, bufferTimeout); } else { output = new RecordWriter<SerializationDelegate<StreamRecord<OUT>>>( streamComponent, outputPartitioner); } outputs.add(output); List<String> outputName = configuration.getOutputName(outputNumber); if (collector != null) { collector.addOutput(output, outputName); } if (LOG.isTraceEnabled()) { LOG.trace( "Partitioner set: " + outputPartitioner.getClass().getSimpleName() + " with " + outputNumber + " outputs"); } }
void setSerializers() { outTypeInfo = configuration.getTypeInfoOut1(); outSerializer = new StreamRecordSerializer<OUT>(outTypeInfo); outSerializationDelegate = new SerializationDelegate<StreamRecord<OUT>>(outSerializer); outSerializationDelegate.setInstance(outSerializer.createInstance()); }