use of backtype.storm.tuple.Fields in project jstorm by alibaba.
the class TransactionSpout method declareOutputFields.
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
spoutExecutor.declareOutputFields(declarer);
declarer.declareStream(TransactionCommon.BARRIER_STREAM_ID, new Fields(TransactionCommon.BARRIER_SNAPSHOT_FIELD));
}
use of backtype.storm.tuple.Fields in project jstorm by alibaba.
the class RichSpoutBatchTriggerer method declareOutputFields.
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
Fields outFields = TridentUtils.getSingleOutputStreamFields(_delegate);
outFields = TridentUtils.fieldsConcat(new Fields("$id$"), outFields);
declarer.declareStream(_stream, outFields);
// try to find a way to merge this code with what's already done in TridentBoltExecutor
declarer.declareStream(_coordStream, true, new Fields("id", "count"));
}
use of backtype.storm.tuple.Fields in project jstorm by alibaba.
the class MasterBatchCoordinator method declareOutputFields.
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
// in partitioned example, in case an emitter task receives a later transaction than it's emitted so far,
// when it sees the earlier txid it should know to emit nothing
declarer.declareStream(BATCH_STREAM_ID, new Fields("tx"));
declarer.declareStream(COMMIT_STREAM_ID, new Fields("tx"));
declarer.declareStream(SUCCESS_STREAM_ID, new Fields("tx"));
}
use of backtype.storm.tuple.Fields in project jstorm by alibaba.
the class FluxBuilder method buildStreamDefinitions.
/**
* @param context
* @param builder
*/
private static void buildStreamDefinitions(ExecutionContext context, TopologyBuilder builder) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
TopologyDef topologyDef = context.getTopologyDef();
// process stream definitions
HashMap<String, BoltDeclarer> declarers = new HashMap<String, BoltDeclarer>();
for (StreamDef stream : topologyDef.getStreams()) {
Object boltObj = context.getBolt(stream.getTo());
BoltDeclarer declarer = declarers.get(stream.getTo());
if (boltObj instanceof IRichBolt) {
if (declarer == null) {
declarer = builder.setBolt(stream.getTo(), (IRichBolt) boltObj, topologyDef.parallelismForBolt(stream.getTo()));
declarers.put(stream.getTo(), declarer);
}
} else if (boltObj instanceof IBasicBolt) {
if (declarer == null) {
declarer = builder.setBolt(stream.getTo(), (IBasicBolt) boltObj, topologyDef.parallelismForBolt(stream.getTo()));
declarers.put(stream.getTo(), declarer);
}
} else {
throw new IllegalArgumentException("Class does not appear to be a bolt: " + boltObj.getClass().getName());
}
// sorry, jstorm don't support IWindowedBolt
/*else if (boltObj instanceof IWindowedBolt) {
if(declarer == null) {
declarer = builder.setBolt(
stream.getTo(),
(IWindowedBolt) boltObj,
topologyDef.parallelismForBolt(stream.getTo()));
declarers.put(stream.getTo(), declarer);
}
}*/
GroupingDef grouping = stream.getGrouping();
// if the streamId is defined, use it for the grouping, otherwise assume storm's default stream
String streamId = (grouping.getStreamId() == null ? Utils.DEFAULT_STREAM_ID : grouping.getStreamId());
switch(grouping.getType()) {
case SHUFFLE:
declarer.shuffleGrouping(stream.getFrom(), streamId);
break;
case FIELDS:
// TODO check for null grouping args
declarer.fieldsGrouping(stream.getFrom(), streamId, new Fields(grouping.getArgs()));
break;
case ALL:
declarer.allGrouping(stream.getFrom(), streamId);
break;
case DIRECT:
declarer.directGrouping(stream.getFrom(), streamId);
break;
case GLOBAL:
declarer.globalGrouping(stream.getFrom(), streamId);
break;
case LOCAL_OR_SHUFFLE:
declarer.localOrShuffleGrouping(stream.getFrom(), streamId);
break;
case NONE:
declarer.noneGrouping(stream.getFrom(), streamId);
break;
case CUSTOM:
declarer.customGrouping(stream.getFrom(), streamId, buildCustomStreamGrouping(stream.getGrouping().getCustomClass(), context));
break;
case LOCAL_FIRST:
declarer.localFirstGrouping(stream.getFrom(), streamId);
break;
case PARTIAL_KEY:
declarer.partialKeyGrouping(stream.getFrom(), streamId, new Fields(grouping.getArgs()));
break;
default:
throw new UnsupportedOperationException("unsupported grouping type: " + grouping);
}
}
}
use of backtype.storm.tuple.Fields in project jstorm by alibaba.
the class TestTridentTopology method buildTopology.
public static StormTopology buildTopology() {
TridentTopology topology = new TridentTopology();
topology.newStream("MetaSpout", new MetaSpout()).each(new Fields("MetaTuple"), new MsgPrint(), new Fields());
return topology.build();
}
Aggregations