8

私はStormについて読んで、storm-starter の例をいじっています。

コンセプトは理解できたと思いますし、多くの場合にうまく当てはまります。これについてもっと知りたいと思っているテスト プロジェクトがありますが、Storm が本当にこれに適しているかどうか疑問に思っています。

私が抱えている概念的な問題は、「ストリーミング」の定義にあります。Storms は、ストリームをサブスクライブしてリアルタイムで処理するチャームとして機能するようですが、実際にはストリームを持っているわけではなく、処理したいデータの有限のコレクションを持っています。

これには Hadoop があることは知っていますが、Storm のリアルタイム機能や、Storm を書いた Nathan が講演で言及しているその他の興味深い点に興味があります。

だから、ストリームをエミュレートするために、非ストリーミング API をポーリングし、結果を比較するスパウトを作成する人がいるのだろうか?

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

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

ありがとう!

4

3 に答える 3

6

嵐のグーグルグループで答えを見つけました。DRCP トポロジーは、DRCP スパウトによってストリームとして受信されるパラメーターを含むタプルを発行し、処理が終了したときに戻ってくるようです (要求 ID と呼ばれる一意の ID を使用)。

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

于 2012-02-21T14:26:08.257 に答える
0

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

アイデアは、有限のデータセット内のどの要素が処理されたかどうかを追跡することです。これは、ack() および fail() メソッドを使用してスパウトで簡単に実行できます。

于 2013-06-26T19:21:03.840 に答える