2012-02-21 80 views
8

我一直在阅读关于Storm和玩风暴起动器的例子。好用风暴?

我想我有这个概念,它适用于很多情况。我有一个测试项目,我想要了解更多关于这个,但我想知道风暴是否真的适合这个。

我遇到的概念问题是'流'定义。看起来风暴将作为订阅流并实时处理它的魅力起作用,但我没有真正的流,而是我想要处理的有限数据集。

我知道这里有hadoop,但我对Storm的实时功能以及其他有趣的点感兴趣,Nathan是Storm写的,他在谈话中提到过。

所以我想知道,人们是否会写Spouts调查非流媒体API,然后对结果进行比较以模拟流?

第二个重要的一点是,似乎风暴拓扑从未完成处理,直到中断,这再次不适用于我的情况。我希望我的拓扑知道,一旦我有限的源数据列表完成,处理可以终止并且可以发出最终结果。

那么,这一切在风暴术语中是否有意义,还是我看错了东西?如果是这样,那么您对这种实时并行计算需求有什么替代方案?

谢谢!

回答

6

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

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

0

当然可以使用Storm处理有限的数据集合,并在处理所有元素后停止。 DRPC拓扑结构是实现这一目标的一种方式,但是滚动您自己的解决方案并不难。

这个想法是跟踪有限数据集中的哪些元素已被处理, 这很容易在Spout中使用ack()和fail()方法完成。

0

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

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