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