Search in sources :

Example 16 with Tuple

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

the class KafkaBoltTest method executeWithByteArrayKeyAndMessageFire.

/* test with fireAndForget option enabled */
@Test
public void executeWithByteArrayKeyAndMessageFire() {
    boolean async = true;
    boolean fireAndForget = true;
    bolt = generateDefaultSerializerBolt(async, fireAndForget, null);
    String keyString = "test-key";
    String messageString = "test-message";
    byte[] key = keyString.getBytes();
    byte[] message = messageString.getBytes();
    Tuple tuple = generateTestTuple(key, message);
    final ByteBufferMessageSet mockMsg = mockSingleMessage(key, message);
    simpleConsumer.close();
    simpleConsumer = mockSimpleConsumer(mockMsg);
    KafkaProducer<?, ?> producer = mock(KafkaProducer.class);
    // do not invoke the callback of send() in order to test whether the bolt handle the fireAndForget option
    // properly.
    doReturn(mock(Future.class)).when(producer).send(any(ProducerRecord.class), any(Callback.class));
    bolt.execute(tuple);
    verify(collector).ack(tuple);
    verifyMessage(keyString, messageString);
}
Also used : Callback(org.apache.kafka.clients.producer.Callback) ProducerRecord(org.apache.kafka.clients.producer.ProducerRecord) Future(java.util.concurrent.Future) ByteBufferMessageSet(kafka.javaapi.message.ByteBufferMessageSet) Tuple(org.apache.storm.tuple.Tuple)

Example 17 with Tuple

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

the class KafkaBoltTest method executeWithoutKey.

@Test
public void executeWithoutKey() throws Exception {
    String message = "value-234";
    Tuple tuple = generateTestTuple(message);
    bolt.execute(tuple);
    verify(collector).ack(tuple);
    verifyMessage(null, message);
}
Also used : Tuple(org.apache.storm.tuple.Tuple)

Example 18 with Tuple

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

the class KafkaBoltTest method executeWithBoltSpecifiedProperties.

/* test bolt specified properties */
@Test
public void executeWithBoltSpecifiedProperties() {
    boolean async = false;
    boolean fireAndForget = false;
    bolt = defaultSerializerBoltWithSpecifiedProperties(async, fireAndForget);
    String keyString = "test-key";
    String messageString = "test-message";
    byte[] key = keyString.getBytes();
    byte[] message = messageString.getBytes();
    Tuple tuple = generateTestTuple(key, message);
    bolt.execute(tuple);
    verify(collector).ack(tuple);
    verifyMessage(keyString, messageString);
}
Also used : Tuple(org.apache.storm.tuple.Tuple)

Example 19 with Tuple

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

the class JoinBolt method doLeftJoin.

// left join - core implementation
protected JoinAccumulator doLeftJoin(JoinAccumulator probe, Map<Object, ArrayList<Tuple>> buildInput, JoinInfo joinInfo, boolean finalJoin) {
    String[] probeKeyName = joinInfo.getOtherField();
    JoinAccumulator result = new JoinAccumulator();
    FieldSelector fieldSelector = new FieldSelector(joinInfo.other.getStreamName(), probeKeyName);
    for (ResultRecord rec : probe.getRecords()) {
        Object probeKey = rec.getField(fieldSelector);
        if (probeKey != null) {
            // ok if its return null
            ArrayList<Tuple> matchingBuildRecs = buildInput.get(probeKey);
            if (matchingBuildRecs != null && !matchingBuildRecs.isEmpty()) {
                for (Tuple matchingRec : matchingBuildRecs) {
                    ResultRecord mergedRecord = new ResultRecord(rec, matchingRec, finalJoin);
                    result.insert(mergedRecord);
                }
            } else {
                ResultRecord mergedRecord = new ResultRecord(rec, null, finalJoin);
                result.insert(mergedRecord);
            }
        }
    }
    return result;
}
Also used : Tuple(org.apache.storm.tuple.Tuple)

Example 20 with Tuple

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

the class StatefulBoltExecutor method fail.

private void fail(List<Tuple> tuples) {
    if (!tuples.isEmpty()) {
        LOG.debug("Failing {} tuples", tuples.size());
        for (Tuple tuple : tuples) {
            collector.fail(tuple);
        }
        tuples.clear();
    }
}
Also used : Tuple(org.apache.storm.tuple.Tuple)

Aggregations

Tuple (org.apache.storm.tuple.Tuple)85 Test (org.junit.Test)30 Fields (org.apache.storm.tuple.Fields)13 OutputCollector (org.apache.storm.task.OutputCollector)11 Values (org.apache.storm.tuple.Values)11 ArrayList (java.util.ArrayList)10 HiveOptions (org.apache.storm.hive.common.HiveOptions)10 TupleWindow (org.apache.storm.windowing.TupleWindow)9 HashMap (java.util.HashMap)7 Test (org.testng.annotations.Test)7 GlobalStreamId (org.apache.storm.generated.GlobalStreamId)6 DelimitedRecordHiveMapper (org.apache.storm.hive.bolt.mapper.DelimitedRecordHiveMapper)6 HashSet (java.util.HashSet)5 JsonRecordHiveMapper (org.apache.storm.hive.bolt.mapper.JsonRecordHiveMapper)5 TopologyContext (org.apache.storm.task.TopologyContext)5 TupleImpl (org.apache.storm.tuple.TupleImpl)5 BasicOutputCollector (org.apache.storm.topology.BasicOutputCollector)4 Map (java.util.Map)3 Callback (org.apache.kafka.clients.producer.Callback)3 ProducerRecord (org.apache.kafka.clients.producer.ProducerRecord)3