好好利用风暴?

uqjltbpv  于 2021-06-26  发布在  Storm
关注(0)|答案(3)|浏览(194)

我一直在读有关风暴和玩风暴启动的例子。
我想我得到了这个概念,它适用于很多情况。我有一个测试项目,我想做更多的了解这一点,但我想知道,如果风暴真的适合这个。
我在概念上遇到的问题是“流”的定义。看起来storms可以像一个魔咒一样订阅一个流并实时处理它,但是我并没有真正的流,而是有一个我想要处理的有限的数据集合。
我知道有hadoop可以做到这一点,但我对storm的实时功能以及撰写storm的nathan在演讲中提到的其他有趣点很感兴趣。
所以我想知道,人们是否会编写一个喷口来轮询非流式API,然后将结果进行差异化,或许是为了模拟一个流?
第二个重要的一点是,storm拓扑似乎永远不会完成处理,直到被中断,这同样不适用于我的情况。我想让我的拓扑结构知道,一旦源数据的有限列表完成,处理就可以终止,并可以发出最终结果。
那么,这一切在Storm中都有意义吗?还是我看错了?如果是这样的话,对于这种实时并行计算的需求,您有什么建议?
谢谢!

k3bvogb1

k3bvogb11#

如果您正在寻找一个快速、交互可用且对开发人员友好的批处理解决方案,那么您可能希望使用apachespark而不是storm。
trident/drpc在您希望对连续计算运行查询时更有用。

4jb9z9bj

4jb9z9bj2#

当然可以使用storm来处理有限的数据集合,并在处理完所有元素后停止。drpc拓扑是实现这一点的一种方法,但推出自己的解决方案并不难。
其思想是跟踪有限数据集中的哪些元素已被处理或未被处理,这很容易在spout中使用ack()和fail()方法完成。

tpgth1q7

tpgth1q73#

在暴风谷歌群里找到了答案。似乎drcp拓扑将发出一个元组,其中包含drcp spout作为流接收的参数,然后将在处理完成时返回(使用名为request id的惟一id)。
在同一个线程中,hadoop可能最适合这些情况,除非数据不够大,并且可以一直进行处理。

相关问题