善用风暴?

时间:2012-02-21 12:26:05

标签: apache-storm

我一直在阅读有关Storm的文章,并在讨论风暴启动者的例子。

我认为我有了这个概念,它很适用于很多情况。我有一个测试项目,我想做更多关于这一点,但我想知道Storm是否真的适合这个。

我遇到的概念问题是“流媒体”定义。似乎Storms将作为订阅流并实时处理它的魅力,但我实际上没有流,而是我想要处理的有限数据集。

我知道有这方面的事情,但我对Storm的实时能力以及编写Storm的Nathan在谈话中提到的其他有趣的观点感兴趣。

所以我想知道,人们会编写调查非流式API的Spouts,然后将结果差异化以模拟流吗?

第二个重点是,似乎Storm拓扑在中断之前从未完成处理,这也不适用于我的情况。我希望我的拓扑结构知道,一旦我的有限源数据列表完成,处理就可以终止,并且可以发出最终结果。

那么,这一切在Storm术语中是否有意义,还是我在看错了什么?如果是这样,您为这种实时并行计算需求提出了哪些替代方案?

谢谢!

3 个答案:

答案 0 :(得分:6)

storm google group中找到答案。似乎DRCP拓扑将发出带有DRCP spout作为流接收的参数的元组,然后在处理完成时指示回来(使用称为请求ID的唯一ID)。

在同一个帖子中说hadoop可能最适合这些情况,除非数据不够大并且可以完全处理。

答案 1 :(得分:0)

当然可以使用Storm来处理有限的数据集合,并在处理完所有元素后停止。 DRPC拓扑是实现此目的的一种方法,但推出自己的解决方案并不难。

我们的想法是跟踪有限数据集中哪些元素已被处理, 这可以使用ack()和fail()方法在Spout中轻松完成。

答案 2 :(得分:0)

如果您正在寻找快速,交互式可用且开发人员友好的批处理解决方案,您可能需要查看Apache Spark而不是Storm。

当您想要在连续计算上运行查询时,Trident / DRPC会更有用。