ZooKeeper を立ててみた。
試してみる(スタンドアロン)
OSXで試すだけ試すには以下を実行する。
インストールして、フォアグラウンドで動かす。別ターミナルからクライアントとしてアクセスもしてみる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
brew install zoookeeper
brew link zookeeper
zkServer
# 特に指定せずに実行すればサブコマンド・デフォルト設定ファイルが確認出来る
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Usage: ./zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
zkServer start-foreground # フォアグラウンドで実行
zkServer start # 通常の実行(tmux上だと無理め)
# 別ターミナル
zkCli
> ls /
[zookeeper]
> help # zkCliで使用可能なコマンドを確認する
|
クォラムモードで動かす
以下を実行して設定ファイルなどを整えて実行する。
3.5系から動的構成が出来るようなので試したいけど、インストールが上手く行かないから後回し。
ZooKeeperの静的構成は設定ファイルにアンサンブルを構成するホスト全体の情報を記述する。
フォーマットは server.x=host:quorum_port:leader_selection_port[:observer]
になる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
for d in `echo `1 2 3`
do
mkdir -p host$d/data
cat /usr/local/etc/zookeeper/zoo.cfg | \
perl -e '$_ =~ s/^dataDir=.*$/dataDir=\.\/data/' -np > ./host$d/zoo.cfg
echo $1 > ./host$d/
# 設定ファイル末尾にZooKeeperのクォラムを構成するhostsの設定を追記する
echo """
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3332:3333
server.3=127.0.0.1:4442:4443
""" >> ./host$d/zoo.cfg
done
# 同hostで実行するのでportが衝突しないように clientPort を書き換える
|