表題の通り。開発に使用しているMacにApache ZooKeeperをHomebrewでインストールする。
■ 環境
- Apache ZooKeeper 3.4.6
- Mac OSX (10.9.5)
- Homebrew
■ インストール
現時点での安定版は”3.4.6“なので、これをインストールする。
$ brew update
$ brew info zookeeper
zookeeper: stable 3.4.6 (bottled), HEAD
https://zookeeper.apache.org/
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/zookeeper.rb
==> Options
--perl
Build Perl bindings
--with-python
Build with python support
--HEAD
Install HEAD version
==> Caveats
To have launchd start zookeeper at login:
ln -sfv /usr/local/opt/zookeeper/*.plist ~/Library/LaunchAgents
Then to load zookeeper now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.zookeeper.plist
Or, if you don't want/need launchctl, you can just run:
zkServer start
$
$ brew install zookeeper
オプションはいくつかあるが、特に指定するものはない。インストールされたモジュールは下記の通りである。
$ brew list zookeeper
/usr/local/Cellar/zookeeper/3.4.6_1/bin/cli_mt
/usr/local/Cellar/zookeeper/3.4.6_1/bin/cli_st
/usr/local/Cellar/zookeeper/3.4.6_1/bin/load_gen
/usr/local/Cellar/zookeeper/3.4.6_1/bin/zkCleanup
/usr/local/Cellar/zookeeper/3.4.6_1/bin/zkCli
/usr/local/Cellar/zookeeper/3.4.6_1/bin/zkServer
/usr/local/Cellar/zookeeper/3.4.6_1/homebrew.mxcl.zookeeper.plist
/usr/local/Cellar/zookeeper/3.4.6_1/include/zookeeper/ (6 files)
/usr/local/Cellar/zookeeper/3.4.6_1/lib/libzookeeper_mt.2.dylib
/usr/local/Cellar/zookeeper/3.4.6_1/lib/libzookeeper_st.2.dylib
/usr/local/Cellar/zookeeper/3.4.6_1/lib/ (4 other files)
/usr/local/Cellar/zookeeper/3.4.6_1/libexec/bin/ (6 files)
/usr/local/Cellar/zookeeper/3.4.6_1/libexec/contrib/ (168 files)
/usr/local/Cellar/zookeeper/3.4.6_1/libexec/lib/ (11 files)
/usr/local/Cellar/zookeeper/3.4.6_1/libexec/zookeeper-3.4.6.jar
$
知らないバイナリがあるな。。ちょっと調べてみたところ…C言語で使うクライアントライブラリのような感じなのかな。
/usr/local/Cellar/zookeeper/3.4.6_1/bin
上記ディレクトリにあるバイナリや各コマンドに対しては、”/usr/local/bin“配下に同名のシンボリックリンクが作成されているので、”/usr/local/bin“にはPATHが通っている為にアクセスは容易である。
■ 設定ファイル
“/usr/local/bin/zkServer“を参照してみると、設定ファイルは下記ディレクトリ内に作成すれば良いようである。
/usr/local/etc/zookeeper
このディレクトリには”zoo_sample.cfg“が存在するので、今回はこれをコピーして使用する。デフォルトでは”zoo.cfg“というファイル名が自動的に読み込まれるようなので、下記のように単純にコピーした。
$ cd /usr/local/etc/zookeeper
$ cp zoo_sample.cfg zoo.cfg
■ 動作確認
ZooKeeperのサーバプロセスを起動する。
$ zkServer start
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Starting zookeeper ... STARTED
$
“zkServer“コマンドには”status“があるので確認してみる。またプロセスも確認しておく。
$ zkServer status
JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Mode: standalone
$
$ jps
26131 Jps
26086 QuorumPeerMain
$
“QuorumPeerMain“がZooKeeperのサーバプロセスである。
続いてクライアントコマンド”zkCli“を使用してアクセスしてみる。引数には何も指定しないので、デフォルトの接続先である”localhost:2181“にアクセスするはずである。
$ zkCli
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is enabled
[zk: localhost:2181(CONNECTING) 0]
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 1]
データはもちろん何も入れていないので空っぽである。”/zookeeper“のznodeはデフォルトでも作成されるものである。
次からは設定ファイルの中身や、実際に使用してみる事にしよう。
以上。
特にありません