MacでZooKeeperを試す


インストール

brew install zookeeper

zoo.cfgを作ってroot権限で起動

cd /usr/local/etc/zookeeper/
cp zoo_sample.cfg zoo.cfg

sudo /usr/local/bin/zkServer start

ログにエラーが出てるが原因はわからない。

$ cat /usr/local/var/log/zookeeper/zookeeper.log
2013-10-22 01:54:31 QuorumPeerMain [ERROR] Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /usr/local/etc/zookeeper/zoo.cfg
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:121)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.IllegalArgumentException: /usr/local/etc/zookeeper/zoo.cfg file is missing
    at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:105)

とりあえずクライアントで接続してみる

$ /usr/local/bin/zkCli -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181
Welcome to ZooKeeper!
JLine support is enabled

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[zk: 127.0.0.1:2181(CONNECTED) 0] 

ひととおりチュートリアル通りに操作する
ZooKeeper スタートガイド

蛇足

lsで取れるznodeは直下までのようす。

[zk: 127.0.0.1:2181(CONNECTED) 4] create /zk_test mydata
Created /zk_test
[zk: 127.0.0.1:2181(CONNECTED) 15] create /zk_test/znode1 1
Created /zk_test/znode1
[zk: 127.0.0.1:2181(CONNECTED) 16] create /zk_test/znode2 2
Created /zk_test/znode2
[zk: 127.0.0.1:2181(CONNECTED) 17] ls /zk_test             
[znode2, znode1]
[zk: 127.0.0.1:2181(CONNECTED) 18] ls /       
[zookeeper, zk_test]

/zk_test/z の変更をウォッチ

[zk: 127.0.0.1:2181(CONNECTED) 4] ls /zk_test/z true

/zk_test/z の子供の変更をwatch

[zk: 127.0.0.1:2181(CONNECTED) 4] ls /zk_test/z true

孫以降の変更はウォッチできない。

蛇足2

なぜかtmux上だとZookeeperが起動しなくなり

osx - Zookeeper server starts, but does not stay started - Stack Overflow

と同様の状態になる。なぜかはわからない。