stormクラスタの導入と構成手順の詳細


まずstormクラスタを構築する手順を全体的に紹介します.
  • zookeeperクラスタ
  • を設定する
  • インストールは、すべてのnimbusおよびworkerノード
  • に依存します.
  • stormリリースをすべてのnimbusおよびworkerノード
  • にダウンロードして解凍
  • 配置storm.yaml
  • 関連バックグラウンドプロセス
  • を開始
    1まずzookeeperクラスタを構成する
    stormはzookeeperによってクラスタ全体を調整することを知っています.zookeeperはメッセージングに使用されないため、stormはzookeeperに大きな圧力を与えません.単一ノードのzookeeperは、多くの場合に適していますが、より信頼性を高めたり、大きなクラスタを導入したりするには、大きなzookeeperクラスタが必要になる可能性があります.zookeeperの導入については、ここではあまり説明しません.具体的には、「here」を参照してください.
    zookeeperの導入については、ここで2つ追加します.
  • zookeeperを監視プロセスの下で実行することは非常に重要です.zookeeperはfail-fastのプロセスであり、エラーが発生した場合に自動的に終了します.具体的には、here
  • を参照してください.
  • のタイミングでzookeeperデータを圧縮および転送することも重要です.zookeeperは圧縮および明確なデータメカニズムを備えていないため、cronを設定してこれらのデータを管理しないと、zookeeperが生成したデータはすぐにディスクをいっぱいにします.具体的には、here
  • を参照してください.
    ps:zookeeperの起動に失敗した場合は、binディレクトリの下のzookeeperを確認します.outファイル、myidを構成してみてください.
    2インストールはnimbusとworkerノードに依存します
    stormが依存する必要があるのは:
  • Java 6
  • Python 2.6.6     

  • stormはほとんどのバージョンへの依存をテストしていますが、stormはどのバージョンへの依存も正常に動作することを保証していません.
    3解凍stormリリースをnimbusおよびworkerノードにダウンロード
    次はstorm圧縮ファイルを各マシンにダウンロードして解凍し、stormリリースバージョンはここからfrom hereをダウンロードできます.
    .
    4構成storm.yamlファイル
    stormにファイルがあるyaml、stormのプロファイルです.このファイルに関するすべてのデフォルト値はここからhereを得ることができます.
    .storm.yamlの構成はdefaultを上書きします.yamlの構成.次に、クラスタが変更する必要がある構成を構成します.
         1) storm.zookeeper.servers:zookeeperクラスタを構成するリスト
     storm.zookeeper.servers:
           - "111.222.333.444"
           - "555.666.777.888"

    zookeeperクラスタで使用されているポートがデフォルトポートでない場合はstormを構成する必要があります.zookeeper.port.
         2) storm.local.dir:stormのnimbusおよびworkプロセスでは、jars、confsなどのステータスデータの一部を格納するディレクトリが必要です.各マシンにこのディレクトリを作成し、対応する権限を与える必要があります.
     storm.local.dir: "/mnt/storm"

         3) nimbus.host:workerノードは、jarsとconfsを自分でmasterノードからダウンロードするために、どのマシンがmasterノードであるかを知る必要があります.
     nimbus.host: "111.222.333.44"

         4) supervisor.slots.ports:ワークマシンごとに、このマシンが合計でどれだけのワークプロセスを実行できるかを決定します.各workerプロセスは、メッセージを受信するために1つのポートを独占します.このパラメータは、どのポートがworkerプロセスに割り当てられるかを構成することです.ここで5つのポートを構成した場合、stormは5つのworkerプロセスをこのマシンに割り当てることができ、3つのポートを構成した場合、stormも3つのworkerプロセスしか割り当てることができません.stormはデフォルトで4つのworkerプロセスを6700670167026703ポートに割り当てます.例:
     supervisor.slots.ports:
        - 6700
        - 6701
        - 6702
        - 6703

    5 stormコマンドによるstorm関連デーモンの実行
    最後のステップは、すべてのstorm関連デーモンプロセスを開始することです.もちろん,これらのプロセスを監督プロセス管理の下に組み込む必要がある.stormもfail-fastシステムであり、これらのプロセスが異常に遭遇すると終了することを意味します.stormがこのように設計したのは、いつでも安全な終了とプロセスの再起動時にリカバリできるためです.これがstormがプロセスに関連状態を保存しない理由です.nimbusまたはsupervisorノードが再起動した場合、実行中のtopoloiesは影響を受けません.次にstorm関連プロセスを起動するコマンドを示します.
  • Nimbus:masterノードで「bin/storm nimbus」
  • を実行
  • Supervisor:各workerノードでbin/storm supervisorを実行します.supervisorプロセスは、workerノード上で対応するworkerプロセス
  • を起動および停止します.
  • UI:「bin/storm ui」を実行し、stormクラスタの実行状態をページ管理および表示するツールです.http://nimbushost:8080」にアクセスします.    

  • stormサービスを開始するプロセスはかなり簡単で、stormが生成したlogは各マシンのstorm/logsディレクトリに保存され、stormはlogbackによってログを管理し、logbackを変更することができる.xmlファイルは、そのlogのディレクトリと内容を変更します.