Apache Storm ワークフロー
動作する Storm クラスターには、Nimbus と 1 つ以上のスーパーバイザーが必要です。もう 1 つの重要なノードは Apache ZooKeeper で、ニンバスとスーパーバイザー間の調整に使用されます。
ここで、Apache Storm のワークフローを詳しく見てみましょう -
最初に、nimbus は「Storm トポロジ」が送信されるのを待ちます。 。
トポロジが送信されると、トポロジが処理され、実行されるすべてのタスクとタスクの実行順序が収集されます。
Nimbus は、利用可能なすべてのスーパーバイザにタスクを均等に分配します。
すべてのスーパーバイザは、特定の間隔でハートビートを送信して、まだ実行中であることを通知します。
スーパーバイザが終了し、ハートビートを送信しない場合、nimbus はタスクを別のスーパーバイザに割り当てます。
nimbus 自体が終了しても、スーパーバイザーは割り当てられたタスクを問題なく実行します。
すべてのタスクが完了すると、スーパーバイザーは新しいタスクが入ってくるのを待ちます。
同時に、終了している nimbus はサービス監視ツールによって自動的に再起動されます。
- #再起動されたネットワークは中断したところから続行されます。同様に、スーパーバイザを終了すると自動的に再起動することもできます。ネットワーク マネージャーとスーパーバイザーは両方とも自動的に再起動でき、両方とも以前と同様に続行されるため、Storm はすべてのタスクが少なくとも 1 回処理されることを保証します。
- すべてのトポロジが処理されると、ネットワーク マネージャーは新しいトポロジーが到着するのを待ち、同様にマネージャーは新しいタスクを待ちます。
ローカル モード - このモードは次の目的で使用されます。これは、すべてのトポロジ コンポーネントが連携して動作していることを確認する最も簡単な方法であるため、開発、テスト、デバッグに役立ちます。このモードではパラメータを調整して、さまざまな Storm 構成環境でトポロジがどのように動作するかを確認できます。ローカル モードでは、Storm トポロジはローカル マシン上の単一の JVM で実行されます。
実稼働モード - このモードでは、トポロジを動作中の Storm クラスターに送信します。Storm クラスターは、通常は異なるマシン上で実行される多くのプロセスで構成されます。 Storm のワークフローで説明したように、ワーカー クラスターはシャットダウンされるまで無期限に実行されます。