如何编写没有聚合的三叉戟拓扑?

时间:2015-02-12 16:48:50

标签: apache-storm trident

我想分批处理元组,我想到了使用Trident API。但是,我没有在此处执行批量的操作。每个元组都是单独处理的。我在这里需要的只是一次语义,这样每个元组只处理一次,这是使用Trident的唯一原因。

我想存储处理哪个元组的信息,以便在重放批处理时,在已经处理过元组时不会执行元组。

拓扑包含 persistentAggregate()方法,但它需要一些聚合操作,但我没有任何聚合操作在一组元组上执行,因为每个元组都是单独处理的。

这里,元组经历的功能太小而无法执行。因此,我希望分批处理它们,以节省计算资源和时间。


现在,如何编写一个拓扑,它将元组作为批处理使用但仍然不执行任何批处理操作(如字数)?

1 个答案:

答案 0 :(得分:0)

看起来你需要的是partitionPersist。 应该提供一个州(或州工厂),要保持的字段和更新程序。 出于开发目的,检查MemoryMapState - 它基本上是内存中的hashmap。 对于生产,您可以使用cassandra - 查看https://github.com/hmsonline/storm-cassandra-cql

上的示例