Docker-compose が Zookeeper+storm クラスターをデプロイ [成功を保証、数秒以内に応答]

docker-hub 公式 Web サイトのチュートリアル

        ドッカーストーム公式ウェブサイト

docker-compose のインストール

        [Zookeeper+Kafka クラスタの Docker インストールと展開、展開中に発生した問題と解決策に関する詳細なチュートリアル] を参照してください。

 動物園飼育員クラスターの構築

        [Zookeeper+Kafka クラスタの Docker インストールとデプロイの詳細なチュートリアル、デプロイ中に発生した問題と解決策] を参照してください。

 ストームクラスター構築

        ストーム クラスターの構築は Zookeeper に依存する必要があるため、ストームを構築する前に Zookeeper クラスターが正常に構築されている必要があります。上記のリンクでは、docker-compose を使用して Zookeeper クラスターを構築するプロセスについて詳しく説明しています。以下に、docker の使用方法を示します。 -compose でストーム クラスターを構築します。実際には、1 つのファイルを使用して 3 つのニンバスとスーパーバイザーを構成できますが、私は最初に 1 つのニンバスと 1 つのスーパーバイザーを構築し、次に残りの 2 つのニンバスとスーパーバイザーを構築しました。

Docker ネットワークを表示する

# Zookeeper が配置されている Docker ネットワークを確認する必要があります

ドッカーネットワークLS

 # Zookeeper クラスターの IP アドレスを確認します。これは、後で storm.yml ファイルで使用されます。

docker Inspection [kafka-netのネットワークID]

 

Zookeeper クラスターは kafka-net の下に構築されているため、storm をこのネットワークにマージする必要があります

ストームを作成し、すべての設定ファイルを配置します

# ルートディレクトリを作成する

mkdir の嵐

CDの嵐

#設定ファイルの作成

touch storm.yaml

sudo nano storm.yaml

# 以下の設定内容を挿入します

storm.zookeeper.servers:
  - "172.18.0.5"
  - "172.18.0.7" < a i=3> - "172.18.0.2" nimbus.seeds:   - "nimbus1"   - " ;nimbus2"   - "nimbus3" storm.log.dir: "/logs" storm.local。ディレクトリ: "/data" storm.cluster.mode: 分散







飼育員のIPはdockerを使用できます 

storm1-compose.yml を書き込む

 # 最初のストームノードを作成する

mkdir 嵐 1

CD 嵐 1

#ファイルの作成と書き込み

touch storm1-compose.yml

sudo nano storm1-compose.yml

# 次のコードを yml ファイルに挿入します。

バージョン: '3'

サービス:
  nimbus:
    イメージ: storm:2.2.0
    コンテナ名: nimbus1
    コマンド: storm nimbus
    再起動: always
    ホスト名: nimbus1
    ポート:
      - 6627:6627
    ボリューム:
      - "../storm.yaml:/conf/storm.yaml"
      - 「./nimbus/data:/data」
      - 「./nimbus/logs:/logs」

  スーパーバイザ:
    イメージ: storm:2.2.0
    コンテナ名: スーパーバイザ 1
    コマンド: ストーム スーパーバイザ       - "./supervisor/logs:/logs"     名前: kafka-net     外部: true   デフォルト: ネットワーク:       - "./supervisor/data:/data"       - "../storm.yaml:/conf /storm.yaml"     ボリューム:     再起動: 常に       - nimbus:nimbus     links:       - nimbus     depend_on:
    ホスト名:visor1












storm1-compose.yml ファイルを実行します。

docker-compose -f storm1-compose.yml up -d

以下の図の出力は、起動が成功したことを示しています。 

残りの 2 つのストーム ノードを構築する

嵐2

# storm2をstormのルートディレクトリに作成

mkdir 嵐 2

CDの嵐2

touch storm-compose2.yml

sudo nano storm-compose2.yml

# コードを追加

バージョン: '3'

サービス:
  nimbus:
    イメージ: storm:2.2.0
    コンテナ名: nimbus2
    コマンド: storm nimbus
    再起動: always
    ホスト名: nimbus2
    ポート:
      - 6628:6627
    ボリューム:
      - "../storm.yaml:/conf/storm.yaml"
      - 「./nimbus/data:/data」
      - 「./nimbus/logs:/logs」

  スーパーバイザ:
    イメージ: storm:2.2.0
    コンテナ名: スーパーバイザ 2
    コマンド: ストーム スーパーバイザ       - "./supervisor/logs:/logs"     名前: kafka-net     外部: true   デフォルト: ネットワーク:       - "./supervisor/data:/data"       - "../storm.yaml:/conf /storm.yaml"     ボリューム:     再起動: 常に       - nimbus:nimbus     links:       - nimbus     depend_on:
    ホスト名:visor2












嵐3

3 番目のノードを構築するときに、storm-ui を追加します。現時点では 3 つの nibum の IP が不明であるため、最初の構築は失敗します。それを 1 回実行し、次に 3 つの nibum の IP を確認し、それらを入力して再度実行します。 .docker-compose で十分です

# storm3をstormのルートディレクトリに作成

mkdir 嵐3

CDの嵐3

touch storm-compose3.yml

sudo nano storm-compose3.yml

# コードを追加

バージョン: '3'

サービス:
  nimbus:
    イメージ: storm:2.2.0
    コンテナ名: nimbus3
    コマンド: storm nimbus
    再起動: always
    ホスト名: nimbus3
    ポート:
      - 6629:6627
    ボリューム:
      - "../storm.yaml:/conf/storm.yaml"
      - 「./nimbus/data:/data」
      - 「./nimbus/logs:/logs」

  スーパーバイザ:
    イメージ: storm:2.2.0
    コンテナ名: スーパーバイザ 3
    コマンド: ストーム スーパーバイザ       - "./supervisor/logs:/logs"       - "./supervisor/data:/data"       - "../storm.yaml:/conf /storm.yaml"     ボリューム:     再起動: 常に       - nimbus:nimbus     links:       - nimbus     depend_on:
    ホスト名:visor3








  storm-ui:
    イメージ: storm:2.2.0
    コンテナ名: storm-ui
    コマンド:嵐 ui
    depend_on:
      - ニンバス
    リンク:
      - ニンバス:ニンバス     ボリューム:       - 8080:8080     ポート:
    再起動: 常に       - 「./ui/data:/data」       - "./ui/logs:/logs"





ネットワーク:
  デフォルト:
    外部: true
    名前: kafka-net

storm-ui を介してクラスターを表示する

# 以下のウェブサイトにアクセスしてください

http://ローカルホスト:8080

次のページが表示され、ストーム クラスターが正常に確立されたことが示されます。 

問題と解決策

docker-compose ファイル形式エラー

        docker-compose ファイルの形式は厳密です。正しいファイルをコピーして貼り付けてから変更することをお勧めします。一般に、ファイル形式が正しくない場合、コンソールにエラーが報告され、ファイルの場所が示されます。ファイルに問題があります。

ストームノードが繰り返し再起動する

        storm-ui に入り、nibums およびスーパーバイザーに接続できない場合は、storm が Zookeeper に接続されていないため、ストーム クラスターが正常に動作しなくなる可能性があります。

おすすめ

転載: blog.csdn.net/2201_75875170/article/details/134469421