原文链接译者:魏勇本文列出了 Storm 拓扑中使用的一些常见模式,包括:数据流的 join批处理BasicBolt内存缓存与域分组的结合Top N 流式计算TimeCacheMapCoordinatedBolt 与 KeyedFairBoltJoins数据流的 join 一般指的是通过共有的域来聚合两个或多个数据流的过程。与一般的数据库中 join 操作要求有限的输入与清晰的语义不同,数据流 join 的输入往往是无限的数据集,而且并不具备明确的语义。join 的类型一般是由应用的需求决定的。有些应用需要将两个流在某个固定时间内的所有 tuple 进行 join,另外一些应用却可能要求对每个 join 域的 join 操作过程的两侧只保留一个 tuple,而其他的应用也许还有一些其他需求。不过这些 join 类型一般都会有一个基本的模式,那就是将多个输入流进行分区。Storm 可以很容易地使用域分组的方法将多个输入流聚集到一个联结 bolt 中,比如下面这样:builder.setBolt("join",newMyJoiner(), parallelism)
.fieldsGrouping("1",newFields("joinfield1","joinfield2"))
.fieldsGrouping("2",newFields("joinfield1","joinfi
...
继续阅读
(26)