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:
ホスト名:visor3storm-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 に接続されていないため、ストーム クラスターが正常に動作しなくなる可能性があります。