docker stormクラスタの迅速な導入

4495 ワード

Stormの導入は特に面倒ではありませんが、本番環境では導入効率を向上させ、管理・メンテナンスを容易にするためにDockerを使用して導入を統一的に管理するのが良いでしょう.次に、stormとmono環境を構成したDockerミラーの編成:storm-mono-dockerの新しいプロジェクトを開きます.
このプロジェクトはhttps://github.com/ptgoetz/storm-vagrantおよびhttps://github.com/wurstmeister/storm-docker;ここで彼らの支払いに感謝します!プロジェクトで使用するDockerミラーはhttps://index.docker.io.
準備作業
Docker Engineをインストールし、https://docs.docker.com/
docker-composeのインストールhttp://docs.docker.com/compose/install/
クローンgitプロジェクト:
git clone https://github.com/ziyunhx/storm-mono-docker
使用
まず、コマンドラインディレクトリをクローンしたgitプロジェクトディレクトリに切り替えます.
次のコマンドでクラスタを起動します.
docker-compose up -d

docker-compose upコマンドを使用して、現在のコマンドラインインタフェースに結果を出力することもできますが、終了するまで他の操作はできません.コマンドラインが終了すると、すべてのコンテナが停止します.docker-compose up-dはバックグラウンドですべてのコンテナを起動します.
このクラスタのすべてのコンテナを停止します.
docker-compose stop

コンテナが停止すると、次回直接起動するとコンテナが正常にリンクされず、stormの動作が異常になります.終了後、次のコマンドを使用してすべてのDockerキャッシュを終了および削除できます.
docker kill $(docker ps -q) ; docker rm $(docker ps -a -q)

supervisorsの追加:
docker-compose scale supervisor=4

次のコマンドを使用して、すべてのミラーファイルを削除します(次の起動時にコンテナをダウンロードするのに時間がかかるので注意してください.使用を続行したくない場合にのみ実行します).
docker rmi $(docker images -q -a)

再構築と更新
Dockerfileを変更した後、次のコマンドを使用してミラーを再構築できます.rebuild.sh ;
ミラーを最新バージョンに更新するには、次のコマンドを使用します:refresh.sh .
質問と回答
Storm UIへのアクセス方法
docker-compose.ymlには次の構成があります.
ui:
  image: ziyunhx/storm-ui
      ports:
        - "49080:8080"

Dockerミラーの8080ポートをホストの49080にマッピングしたので、アクセスできます.http://localhost:49080訪問に来る.boot 2 dockerを使用する場合は、次のコマンドで仮想マシンのIPを取得できます.
$ boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103

返される結果はあなたのIPで、この例ではhttp://192.168.59.103:49080訪問に来る.
コミットtopologyをどのように配置しますか?
nimbusのIPとポートがデフォルトでない場合は、後でコミットするように指定する必要があります.この例では、次のコマンドを使用できます.
storm jar target/your-topology-fat-jar.jar com.your.package.AndTopology topology-name -c nimbus.host=192.168.59.103 -c nimbus.thrift.port=49627 

上記のコマンドが機能しない場合は、ローカルのStormプロファイル(storm.yaml)で次の項目を構成できます.
nimbus.host: "192.168.59.103"    
nimbus.thrift.port: 49627 

次のコマンドを実行します.
storm jar target/your-topology-fat-jar.jar com.your.package.AndTopology topology-name