1

Stormは、無料のオープンソースの分散型リアルタイム計算システムです。データのストリームを受信し、処理を行います。Stormがダウンし、データの一部がStormを通過しない場合、つまり計算が同期されない場合はどうなりますか?

Stormはこの問題をどのように解決できますか?それができない場合、どうすればこの問題を解決できますか?

同様の質問は次のようになります。Stormが追加される前に存在していた古いデータを読み取るにはどうすればよいですか?

4

1 に答える 1

3

Stormが追加される前に存在していた古いデータを読み取るにはどうすればよいですか?

データはどこかに保存する必要があります(たとえば、HDFS)。何らかのトランスポート(JMSなど)からのデータを受け入れるスパウトを作成します。次に、HDFSから適切なデータを読み取り、それをJMSチャネルに配置するための再生コードを作成する必要があります。そうすれば、Stormがそれを処理します。秘訣は、データをどこまでさかのぼる必要があるかを知ることです。これは、再生コードなどの外部システムの責任である可能性があります。この再生コードは、データベース、またはStormの処理結果を参照する場合があります。

全体として、「ダウンした場合はどうなるか」という質問は、実行している計算のタイプと、システムが背圧を処理するかどうかによって異なります。つまり、ストリームの耐久性の多くは、Stormに配信されるメッセージング/トランスポートメカニズムに依存しています。

例:個々のイベントを単純に変換(xslt)する必要がある場合、リアルタイムの障害はなく、Stormがダウンしても状態の問題はありません。バックアップを開始して処理を再開するだけです。

フィードを提供するシステムは、背圧を処理する必要がある場合があります。Kafkaのようなメッセージングトランスポートは、耐久性のあるメッセージングを処理でき、Stormが中断したところから再開できるようにします。

「計算が同期されない」という結果になる特定のユースケースは、より適切でより具体的な答えを提供するために説明する必要があります。

于 2013-02-05T16:31:28.810 に答える