Search in sources :

Example 86 with Fields

use of org.apache.storm.tuple.Fields in project storm by apache.

the class Executor method outboundComponents.

/**
     * Returns map of stream id to component id to grouper
     */
private Map<String, Map<String, LoadAwareCustomStreamGrouping>> outboundComponents(WorkerTopologyContext workerTopologyContext, String componentId, Map stormConf) {
    Map<String, Map<String, LoadAwareCustomStreamGrouping>> ret = new HashMap<>();
    Map<String, Map<String, Grouping>> outputGroupings = workerTopologyContext.getTargets(componentId);
    for (Map.Entry<String, Map<String, Grouping>> entry : outputGroupings.entrySet()) {
        String streamId = entry.getKey();
        Map<String, Grouping> componentGrouping = entry.getValue();
        Fields outFields = workerTopologyContext.getComponentOutputFields(componentId, streamId);
        Map<String, LoadAwareCustomStreamGrouping> componentGrouper = new HashMap<String, LoadAwareCustomStreamGrouping>();
        for (Map.Entry<String, Grouping> cg : componentGrouping.entrySet()) {
            String component = cg.getKey();
            Grouping grouping = cg.getValue();
            List<Integer> outTasks = workerTopologyContext.getComponentTasks(component);
            LoadAwareCustomStreamGrouping grouper = GrouperFactory.mkGrouper(workerTopologyContext, componentId, streamId, outFields, grouping, outTasks, stormConf);
            componentGrouper.put(component, grouper);
        }
        if (componentGrouper.size() > 0) {
            ret.put(streamId, componentGrouper);
        }
    }
    for (String stream : workerTopologyContext.getComponentCommon(componentId).get_streams().keySet()) {
        if (!ret.containsKey(stream)) {
            ret.put(stream, null);
        }
    }
    return ret;
}
Also used : HashMap(java.util.HashMap) LoadAwareCustomStreamGrouping(org.apache.storm.grouping.LoadAwareCustomStreamGrouping) Grouping(org.apache.storm.generated.Grouping) LoadAwareCustomStreamGrouping(org.apache.storm.grouping.LoadAwareCustomStreamGrouping) Fields(org.apache.storm.tuple.Fields) Map(java.util.Map) HashMap(java.util.HashMap)

Example 87 with Fields

use of org.apache.storm.tuple.Fields in project storm by apache.

the class EsTestUtil method generateTestTuple.

public static Tuple generateTestTuple(String source, String index, String type, String id) {
    TopologyBuilder builder = new TopologyBuilder();
    GeneralTopologyContext topologyContext = new GeneralTopologyContext(builder.createTopology(), new Config(), new HashMap(), new HashMap(), new HashMap(), "") {

        @Override
        public Fields getComponentOutputFields(String componentId, String streamId) {
            return new Fields("source", "index", "type", "id");
        }
    };
    return new TupleImpl(topologyContext, new Values(source, index, type, id), 1, "");
}
Also used : Fields(org.apache.storm.tuple.Fields) GeneralTopologyContext(org.apache.storm.task.GeneralTopologyContext) TopologyBuilder(org.apache.storm.topology.TopologyBuilder) HashMap(java.util.HashMap) Config(org.apache.storm.Config) Values(org.apache.storm.tuple.Values) TupleImpl(org.apache.storm.tuple.TupleImpl)

Example 88 with Fields

use of org.apache.storm.tuple.Fields in project heron by twitter.

the class StringKeyValueSchemeTest method testGetOutputFields.

@Test
public void testGetOutputFields() throws Exception {
    Fields outputFields = scheme.getOutputFields();
    assertTrue(outputFields.contains(StringScheme.STRING_SCHEME_KEY));
    assertEquals(1, outputFields.size());
}
Also used : Fields(org.apache.storm.tuple.Fields) Test(org.junit.Test)

Example 89 with Fields

use of org.apache.storm.tuple.Fields in project metron by apache.

the class ProfileSplitterBolt method declareOutputFields.

/**
 * Each emitted tuple contains the following fields.
 * <p>
 * <ol>
 * <li>message - The message containing JSON-formatted data that needs applied to a profile.
 * <li>timestamp - The timestamp of the message.
 * <li>entity - The name of the entity.  The actual result of executing the Stellar expression.
 * <li>profile - The profile definition that the message needs applied to.
 * </ol>
 * <p>
 */
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
    // the order here must match 'createValues'
    Fields fields = new Fields(MESSAGE_TUPLE_FIELD, TIMESTAMP_TUPLE_FIELD, ENTITY_TUPLE_FIELD, PROFILE_TUPLE_FIELD);
    declarer.declare(fields);
}
Also used : Fields(org.apache.storm.tuple.Fields)

Example 90 with Fields

use of org.apache.storm.tuple.Fields in project metron by apache.

the class GenericEnrichmentBolt method declareOutputFields.

@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
    declarer.declareStream(enrichmentType, new Fields("key", "message", "subgroup"));
    declarer.declareStream(ERROR_STREAM, new Fields("message"));
}
Also used : Fields(org.apache.storm.tuple.Fields)

Aggregations

Fields (org.apache.storm.tuple.Fields)176 Test (org.junit.Test)44 Values (org.apache.storm.tuple.Values)38 TopologyBuilder (org.apache.storm.topology.TopologyBuilder)36 HashMap (java.util.HashMap)32 TridentTopology (org.apache.storm.trident.TridentTopology)32 Config (org.apache.storm.Config)31 Stream (org.apache.storm.trident.Stream)25 LocalCluster (org.apache.storm.LocalCluster)19 LocalTopology (org.apache.storm.LocalCluster.LocalTopology)17 TridentState (org.apache.storm.trident.TridentState)17 FixedBatchSpout (org.apache.storm.trident.testing.FixedBatchSpout)16 Map (java.util.Map)15 ArrayList (java.util.ArrayList)14 HiveOptions (org.apache.storm.hive.common.HiveOptions)14 AbstractTest (org.apache.flink.storm.util.AbstractTest)13 DelimitedRecordHiveMapper (org.apache.storm.hive.bolt.mapper.DelimitedRecordHiveMapper)12 IRichBolt (org.apache.storm.topology.IRichBolt)12 StateFactory (org.apache.storm.trident.state.StateFactory)12 Tuple (org.apache.storm.tuple.Tuple)12