2012-02-21 11 views
8

私は約Stormを読んでいて、ストームスターターの例で遊んでいます。嵐の使用は良いですか?

私はコンセプトを持っていると思うし、多くの場合非常にうまく適用されます。私はこれについてもっと学ぶためにやりたいテストプロジェクトを持っていますが、Stormが本当にこれに適しているのだろうかと思っています。

私が持っている概念的な問題は、「ストリーミング」の定義にあります。 Stormsはストリームを購読してリアルタイムで処理するという魅力として機能するようですが、ストリームはありませんが、処理したいデータの有限集合です。

私はこのことについてハーフープがあることを知っていますが、Stormのリアルタイム機能とStormを書いたNathanが彼の話で言及している他の興味深い点に興味があります。

だから私は、ストリームしていないAPIをポーリングしてストリームをエミュレートするために結果を比較するスパウトを書いているのでしょうか?

第2の重要な点は、ストームトポロジが中断されるまで処理を終了しないことです。これは私の場合には当てはまりません。トポロジに、ソースデータの有限リストが完成すると、処理を終了して最終結果を出力できることを知りたい。

だから、それはすべてストーム用語で意味をなさないのですか、間違ったことを見ていますか?もしそうなら、このようなリアルタイムの並列コンピューティングのニーズに対して、どのような選択肢を提案しますか?

ありがとうございます!

答えて

6

答えはstorm google groupで見つかりました。 DRCPトポロジは、DRCPスパウトによってストリームとして受信されたパラメータを含むタプルを出力し、処理が完了すると(要求IDと呼ばれる一意のIDを使用して)戻ってくることを示します。

同じスレッドでは、データが十分に大きくなく、常に完全に処理できる場合を除き、hadoopがおそらくこれらのケースに最適であると言います。

0

Stormを使用して、データの有限集合を処理し、すべての要素が処理されると停止することは確かに可能です。 DRPCトポロジはこれを行う1つの方法ですが、独自のソリューションを展開することは難しくありません。

考えられるのは、有限データセットのどの要素が処理されたかを追跡することです。 ack()メソッドとfail()メソッドを使用してSpoutで簡単に実行できます。

0

対話式で高速で対話的に使用できるバッチ処理ソリューションをお探しの場合は、ストームの代わりにApache Sparkを参照してください。

Trident/DRPCは、継続的な計算でクエリを実行する場合に役立ちます。

関連する問題