繁体   English   中英

比较风暴螺栓中的上一个和下一个元组

[英]Comparing previous and next tuple in storm bolt

我有由风暴拓扑处理的实时数据。 数据可以有四种类型,例如A,B,C,D。每个数据都由螺栓按随机顺序使用。 我需要做的是比较两个相同数据类型的元组。 例如,我想比较A型元组和下一个A型元组,或者说比较当前A型元组和先前接收的A型元组。 有办法做到这一点吗? 或者,我必须将先前的结果保存在数据库中(比如说hbase或缓存)中,并查询它以与特定类型的当前元组进行比较。

编辑

假设A,B,C,D类型的数据流来自喷口

B4 A4 C7 D2 A3 A2 B3 C6 D1 B2 C5 C4 B1 C3 C2 C1 A1 ----->出口->螺栓

现在在螺栓上,我想将A1与A2,A2与A3,A3与A4进行比较。 类似地,B1与B2,B2与B3等。

当您在喷嘴中发出元组时,可以指定数据类型。 然后,您可以使用字段分组,因此每个类型A都将进入同一线程。 这样,您最多可以有4个不同的线程来执行螺栓代码。 每个线程中的顺序得到保证。

builder.setBolt(BOLT_NAME, new BoltClass(),4)
.fieldsGrouping(SPOUT_NAME,new Fields("type"));

Storm文档中的字段分组定义:

字段分组:流按分组中指定的字段进行分区。 例如,如果流按“ user-id”字段分组,则具有相同“ user-id”的元组将始终执行相同的任务,但是具有不同“ user-id”的元组可能会执行不同的任务。

http://storm.apache.org/documentation/Concepts.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM