Zookeeperをローカル環境で複数ノード起動する方法
検証でZookeeperを複数ノード起動する必要があったので、ローカル環境で動かす方法を整理。
インストール
なにはともあれインストール。ダウンロードは この辺 からたどれるはず。今回は zookeeper-3.4.2.tar.gz を利用。適当な場所に展開(以降、展開先ディレクトリを$ZOOKEPER_HOMEとする)。
環境設定
Zookeeperの起動には設定ファイルが必要。$ZOOKEPER_HOME/conf 配下の zoo_sample.cfg をコピーして zoo01.cfg を作成。
cd $ZOOKEPER_HOME/conf
cp zoo_sample.cfg zoo01.cfg
zoo01.cfg を編集。dataDirの修正(ここでは$ZOOKEPER_HOME/data01を利用)と、最終行に server.x の記述を追記する。
clientPort=2181 dataDir=$ZOOKEPER_HOME/data01 server.1=localhost:2888:3888 server.2=localhost:2889:3889 server.3=localhost:2890:3890
zoo01.cfg をコピーして zoo02.cfg と zoo03.cfg を作成。
cp zoo01.cfg zoo02.cfg cp zoo01.cfg zoo03.cfg
zoo02.cfg と zoo03.cfg を編集。dataDirの修正と、clientPort の値をそれぞれ 2182 と 2183 にする。
clientPort=2182 dataDir=$ZOOKEPER_HOME/data02
clientPort=2183 dataDir=$ZOOKEPER_HOME/data03
dataDir で指定したディレクトリを作成。ディレクトリ配下にmyidというファイルを作成し、値を server.x で指定したx値を設定する。
mkdir $ZOOKEPER_HOME/data01 echo 1 > $ZOOKEPER_HOME/data01/myid mkdir $ZOOKEPER_HOME/data02 echo 2 > $ZOOKEPER_HOME/data02/myid mkdir $ZOOKEPER_HOME/data03 echo 3 > $ZOOKEPER_HOME/data03/myid
起動と停止
あとは作成した設定ファイルを指定して起動すればOK。
$ZOOKEPER_HOME/bin/zkServer.sh start $ZOOKEPER_HOME/conf/zoo01.cfg $ZOOKEPER_HOME/bin/zkServer.sh start $ZOOKEPER_HOME/conf/zoo02.cfg $ZOOKEPER_HOME/bin/zkServer.sh start $ZOOKEPER_HOME/conf/zoo03.cfg
停止も同様。
$ZOOKEPER_HOME/bin/zkServer.sh stop $ZOOKEPER_HOME/conf/zoo01.cfg $ZOOKEPER_HOME/bin/zkServer.sh stop $ZOOKEPER_HOME/conf/zoo02.cfg $ZOOKEPER_HOME/bin/zkServer.sh stop $ZOOKEPER_HOME/conf/zoo03.cfg