4

質問の短いバージョン:障害が発生した場合でも正確な結果を生成するフェイルセーフな単語カウント プログラム (トポロジ) を Twitter Storm で構築する方法は? それは可能ですか?

長いバージョン: 私は Twitter Storm を研究しており、それがどのように使用されるべきかを理解しようとしています。チュートリアルに従ったところ、非常に単純な概念であることがわかりました。ただし、チュートリアルで概説されているワード カウントの例はフォールト トレラントではありません (ボルトは一部のデータをメモリに保存するため)。ただし、バックエンド DB に同じデータを保存すると、イベントがチェーンの最初に再送信された場合 (ボルトの一部が失敗した場合に発生)、二重カウントにつながります。

Twitter Storm を部分的に正確な結果を生成するためのリアルタイム プラットフォームと見なし、正確な結果を取得するために MapReduce に依存する必要がありますか?

4

2 に答える 2

2

それは、あなたがヘッジしようとしている失敗の種類に大きく依存します. あなたができることがいくつかあります:

  1. ストーム ボルトは、タプルを処理した後にのみ、タプルを確認することになっています。これを使用するスパウトとボルト、およびトポロジを作成すると、精度が保証される「正確に 1 回限り」のシステムを実装できます。

  2. Kafka は、ディスクの永続性を使用してメッセージが消費された後もメッセージを長期間保持するため、Storm にデータを配置するのに適した方法です。これは、コンシューマーによる障害が発生した場合にそれらを取得できることを意味します。

ただし、一般に、ストリーミング システムで物事が 1 回だけ処理されることを保証することは困難です。これは既知の問題であり、効率的に解決するのは非常に難しい問題です。

于 2012-06-22T20:46:40.867 に答える