Stormクラスタ構築(バージョン1.2.2)

5585 ワード

stormクラスタ導入(1.2.2バージョン)


前提環境


CentOS release 6.4 (Final)+JDK8+Python 2.6.6

クラスタ配置


zookeeperクラスタの設定



マシン要求環境


Java 7+(Apache Storm 1.xはtravis ciでjava 7とjava 8 JDKをテスト)Python 2.6.6(Python 3.xも動作するはずですが、CI環境の一部としてテストしない)これらはStormテストを使用した依存項目のバージョンです.Stormは、異なるバージョンのJavaおよび/またはPythonに適用されるか、適用されない可能性があります.

stormバージョン取得


storm1.2.2バージョンのダウンロード
STORM_の展開と構成HOME
STORM_HOME=/data/apache-storm-1.2.2
PATH=$STORM_HOME/bin:$PATH
export PATH

構成storm.yaml

storm.zookeeper.servers:
     - "server1"
     - "server2"
     - "server3"
storm.local.dir: "/data/apache-storm-1.2.2/storm-local"
nimbus.seeds: ["server3"]
ui.port: 18080
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000

説明:-zookeeperクラスタアドレスの構成
storm.zookeeper.servers:
  - "server1"
  - "server2"
  - "server3"
  • storm.local.dir:NimbusおよびSupervisorデーモンプロセスでは、jar、confsなどの少量のステータスを格納するためにローカルディスク上のディレクトリが必要です.各コンピュータにディレクトリを作成し、適切な権限を付与し、この構成を使用してディレクトリの場所を記入する必要があります.例えば、storm.local.dir: "/data/storm"
  • nimbus.seeds:トポロジjarおよびconfsをダウンロードするには、ワークノードがホストの候補者であるマシンを知る必要があります.nimbus.seeds: ["server1"]マシンのFQDNリストに値を記入することを奨励します.Nimbus H/Aを設定する場合は、nimbusを実行するすべてのコンピュータのFQDNを解決する必要があります.「擬似分散」クラスタのみを設定する場合は、デフォルト値のままにしたい場合がありますが、FQDNを入力することを推奨します.
  • supervisor.slots.ports:作業者コンピュータごとに、この構成を使用してコンピュータ上で実行できるワークプログラムの数.各スタッフは、単一のポートを使用してメッセージを受信します.この設定では、使用できるポートを定義します.ここで5つのポートを定義すると、Stormは最大5人の従業員をこのコンピュータ上で実行するように割り当てられます.3つのポートを定義すると、Stormは最大3つのポートしか実行できません.デフォルトでは、ポート670067016702および6703で4つのワークプログラムを実行するように設定されています.例:
  • supervisor.slots.ports:
        - 6700
        - 6701
        - 6702
        - 6703
  • ヘルスチェックStormは、管理者が管理者から提供されたスクリプトを定期的に実行して、ノードがヘルスであるかどうかを判断するメカニズムを提供します.管理者は、storm.health.check.dirのスクリプトで選択したチェックを実行することによって、ノードが健全な状態にあるかどうかを判断することができます.スクリプトがノードが不健康であることを検出する場合は、文字列ERRORの先頭にある標準出力行を使用する必要があります.マネージャは、実行状況チェックディレクトリのスクリプトを定期的に実行し、出力をチェックします.スクリプトの出力に文字列ERRORが含まれている場合、前述したように、責任者はすべての従業員を閉じて終了します.管理者が監視の下で実行している場合、/bin/storm node-health-checkを呼び出して、管理者を起動すべきかどうか、またはノードが動作していないかどうかを判断することができる.実行状況チェックディレクトリの場所は、storm.health.check.dir: "healthchecks"スクリプトに実行権限が必要であるように構成できます.タイムアウトによって失敗とマークされる前に、指定された実行状況チェックスクリプトを実行できる時間は、storm.health.check.timeout.ms: 5000
  • として構成することができる.

    スタートノード


    Nimbusの起動スクリプト
    nohup /root/apache-storm-1.2.2/bin/storm nimbus > /dev/null &  
    nohup /root/apache-storm-1.2.2/bin/storm ui > /dev/null &
    nohup /root/apache-storm-1.2.2/bin/storm logviewer > /dev/null &

    supervisorでスクリプトを起動する
    nohup /root/apache-storm-1.2.2/bin/storm supervisor > /dev/null &
    nohup /root/apache-storm-1.2.2/bin/storm logviewer > /dev/null &

    UIアクセス:Webブラウザをhttp://ui host::8080にナビゲートしてUIにアクセスできます.
    プログラムを閉じる:jpsを使用してpidを表示してkillできます.

    外部ライブラリと環境変数の構成(オプション)


    外部ライブラリまたはカスタムプラグインのサポートが必要な場合は、これらのjarをextlib/およびextlib-daemon/ディレクトリに格納できます.extlib-daemon/ディレクトリには、HDFSやカスタムスケジューリングライブラリなど、デーモン(Nimbus、Supervisor、DRPC、UI、Logviewer)のみで使用されるjarのみが格納されています.したがって、ユーザは、2つの環境変数STORM_を構成することができるEXT_CLASSSPATHとSTORM_EXT_CLASSPATH_DAEMONは、外部クラスパスとデーモンプロセスのみを含む外部クラスパスです.