Search in sources :

Example 1 with ProcessorNode

use of storm.trident.planner.ProcessorNode in project jstorm by alibaba.

the class Stream method partitionPersist.

public TridentState partitionPersist(StateSpec stateSpec, Fields inputFields, StateUpdater updater, Fields functionFields) {
    projectionValidation(inputFields);
    String id = _topology.getUniqueStateId();
    ProcessorNode n = new ProcessorNode(_topology.getUniqueStreamId(), _name, functionFields, functionFields, new PartitionPersistProcessor(id, inputFields, updater));
    n.committer = true;
    n.stateInfo = new NodeStateInfo(id, stateSpec);
    return _topology.addSourcedStateNode(this, n);
}
Also used : PartitionPersistProcessor(storm.trident.planner.processor.PartitionPersistProcessor) ProcessorNode(storm.trident.planner.ProcessorNode) NodeStateInfo(storm.trident.planner.NodeStateInfo)

Example 2 with ProcessorNode

use of storm.trident.planner.ProcessorNode in project jstorm by alibaba.

the class Stream method window.

private Stream window(WindowConfig windowConfig, WindowsStoreFactory windowStoreFactory, Fields inputFields, Aggregator aggregator, Fields functionFields, boolean storeTuplesInStore) {
    projectionValidation(inputFields);
    windowConfig.validate();
    Fields fields = addTriggerField(functionFields);
    // when storeTuplesInStore is false then the given windowStoreFactory is only used to store triggers and
    // that store is passed to WindowStateUpdater to remove them after committing the batch.
    Stream stream = _topology.addSourcedNode(this, new ProcessorNode(_topology.getUniqueStreamId(), _name, fields, fields, new WindowTridentProcessor(windowConfig, _topology.getUniqueWindowId(), windowStoreFactory, inputFields, aggregator, storeTuplesInStore)));
    Stream effectiveStream = stream.project(functionFields);
    // create StateUpdater with the given windowStoreFactory to remove triggered aggregation results form store
    // when they are successfully processed.
    StateFactory stateFactory = new WindowsStateFactory();
    StateUpdater stateUpdater = new WindowsStateUpdater(windowStoreFactory);
    stream.partitionPersist(stateFactory, new Fields(WindowTridentProcessor.TRIGGER_FIELD_NAME), stateUpdater, new Fields());
    return effectiveStream;
}
Also used : Fields(backtype.storm.tuple.Fields) ProcessorNode(storm.trident.planner.ProcessorNode) WindowsStateFactory(storm.trident.windowing.WindowsStateFactory) StateFactory(storm.trident.state.StateFactory) WindowsStateUpdater(storm.trident.windowing.WindowsStateUpdater) GroupedStream(storm.trident.fluent.GroupedStream) IAggregatableStream(storm.trident.fluent.IAggregatableStream) WindowTridentProcessor(storm.trident.windowing.WindowTridentProcessor) WindowsStateFactory(storm.trident.windowing.WindowsStateFactory) ReducerAggStateUpdater(storm.trident.operation.impl.ReducerAggStateUpdater) WindowsStateUpdater(storm.trident.windowing.WindowsStateUpdater) StateUpdater(storm.trident.state.StateUpdater) CombinerAggStateUpdater(storm.trident.operation.impl.CombinerAggStateUpdater)

Example 3 with ProcessorNode

use of storm.trident.planner.ProcessorNode in project jstorm by alibaba.

the class Stream method stateQuery.

public Stream stateQuery(TridentState state, Fields inputFields, QueryFunction function, Fields functionFields) {
    projectionValidation(inputFields);
    String stateId = state._node.stateInfo.id;
    Node n = new ProcessorNode(_topology.getUniqueStreamId(), _name, TridentUtils.fieldsConcat(getOutputFields(), functionFields), functionFields, new StateQueryProcessor(stateId, inputFields, function));
    _topology._colocate.get(stateId).add(n);
    return _topology.addSourcedNode(this, n);
}
Also used : ProcessorNode(storm.trident.planner.ProcessorNode) ProcessorNode(storm.trident.planner.ProcessorNode) PartitionNode(storm.trident.planner.PartitionNode) Node(storm.trident.planner.Node) StateQueryProcessor(storm.trident.planner.processor.StateQueryProcessor)

Example 4 with ProcessorNode

use of storm.trident.planner.ProcessorNode in project jstorm by alibaba.

the class TridentTopology method multiReduce.

public Stream multiReduce(List<Fields> inputFields, List<Stream> streams, MultiReducer function, Fields outputFields) {
    List<String> names = new ArrayList<>();
    for (Stream s : streams) {
        if (s._name != null) {
            names.add(s._name);
        }
    }
    Node n = new ProcessorNode(getUniqueStreamId(), Utils.join(names, "-"), outputFields, outputFields, new MultiReducerProcessor(inputFields, function));
    return addSourcedNode(streams, n);
}
Also used : ProcessorNode(storm.trident.planner.ProcessorNode) SpoutNode(storm.trident.planner.SpoutNode) ProcessorNode(storm.trident.planner.ProcessorNode) PartitionNode(storm.trident.planner.PartitionNode) Node(storm.trident.planner.Node) ArrayList(java.util.ArrayList) GroupedStream(storm.trident.fluent.GroupedStream) IAggregatableStream(storm.trident.fluent.IAggregatableStream) MultiReducerProcessor(storm.trident.planner.processor.MultiReducerProcessor)

Example 5 with ProcessorNode

use of storm.trident.planner.ProcessorNode in project storm by nathanmarz.

the class Stream method stateQuery.

public Stream stateQuery(TridentState state, Fields inputFields, QueryFunction function, Fields functionFields) {
    projectionValidation(inputFields);
    String stateId = state._node.stateInfo.id;
    Node n = new ProcessorNode(_topology.getUniqueStreamId(), _name, TridentUtils.fieldsConcat(getOutputFields(), functionFields), functionFields, new StateQueryProcessor(stateId, inputFields, function));
    _topology._colocate.get(stateId).add(n);
    return _topology.addSourcedNode(this, n);
}
Also used : ProcessorNode(storm.trident.planner.ProcessorNode) ProcessorNode(storm.trident.planner.ProcessorNode) PartitionNode(storm.trident.planner.PartitionNode) Node(storm.trident.planner.Node) StateQueryProcessor(storm.trident.planner.processor.StateQueryProcessor)

Aggregations

ProcessorNode (storm.trident.planner.ProcessorNode)7 Node (storm.trident.planner.Node)4 PartitionNode (storm.trident.planner.PartitionNode)4 GroupedStream (storm.trident.fluent.GroupedStream)3 IAggregatableStream (storm.trident.fluent.IAggregatableStream)3 ArrayList (java.util.ArrayList)2 NodeStateInfo (storm.trident.planner.NodeStateInfo)2 SpoutNode (storm.trident.planner.SpoutNode)2 MultiReducerProcessor (storm.trident.planner.processor.MultiReducerProcessor)2 PartitionPersistProcessor (storm.trident.planner.processor.PartitionPersistProcessor)2 StateQueryProcessor (storm.trident.planner.processor.StateQueryProcessor)2 Fields (backtype.storm.tuple.Fields)1 CombinerAggStateUpdater (storm.trident.operation.impl.CombinerAggStateUpdater)1 ReducerAggStateUpdater (storm.trident.operation.impl.ReducerAggStateUpdater)1 StateFactory (storm.trident.state.StateFactory)1 StateUpdater (storm.trident.state.StateUpdater)1 WindowTridentProcessor (storm.trident.windowing.WindowTridentProcessor)1 WindowsStateFactory (storm.trident.windowing.WindowsStateFactory)1 WindowsStateUpdater (storm.trident.windowing.WindowsStateUpdater)1