どぅーちゅいむーにー

これ、Twitterでよくね?という日々の記録かも

ZooKeeper 3.3.0 のインストール

HBaseをインストールするためにはZooKeeperというものをインストールする必要があるらしい。
というわけで、ZooKeeper というものをインストール。
っていうか、けっこう書いてたのに左側の「はてなダイアリープラス」のバナーを間違ってクリックしたらすべてが吹っ飛んだ・・・

  • インストールしたバージョン

今回、試したバージョンは 3.3.0 です。


なお、インストールに関して、Hadoop は不要のようです(たぶん)。

  • 概要とか

Hadoop のサブプロジェクトの1つです。
公式:http://hadoop.apache.org/zookeeper/
日本語の概要:http://oss.infoscience.co.jp/hadoop/zookeeper/index.html
「分散アプリケーションのためのパフォーマンスの高いコーディネーションサービス」ということですが、まだちょっとピンときてません。
分散処理におけるトランザクション管理とかそういうたぐいのものかと思いますが、まぁ、現時点ではそれが目的ではないので、未来にゆだねたいと思います。

  • インストール

ダウンロードして、解凍、設定ちょっといじって完了といういい感じな手順となっています。
インストール先は /home/issei/app/zookeeper-3.3.0/ になりました。
ですので、以下、ディレクトリは上記ディレクトリからの相対パスとなります。

設定ファイルは以下のようにしました

myhdfs1> cat zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/issei/tmp/zookeeper
clientPort=2181

サンプル(conf/zoo_sample.cfg)をコピーして、コメントを削除した感じです。
ドキュメントのページには initLimit と syncLimit については触れられていません。ので、サンプルのままとなっています("tick"のニュアンスがまだピンとこないので、とりあえずそのままということで・・・)。


分散モード?で実行するためには追加で設定を行う必要があるみたいですが、まぁ、現時点ではこれがメインというわけではないので、次の機会にとっておくことにします。一応、Getting Started の最後のほうに書いてあるみたい。

  • 実行してみる。

bin ディレクトリに sh あり。環境設定の sh もチェックしつつ、ドキュメントもみてみましたが、JAVA_HOME を設定する必要があるとか、そういう話は書いていないっぽい。ので、

myhdfs1> bin/zkServer.sh start

で起動する。
起動するとコンソールにログがつらつらと出力されます。

  • ログに関して

conf/log4j.properties があります。デフォルトで、rootLogger の設定が

# DEFAULT: console appender only
log4j.rootLogger=INFO, CONSOLE

となっていますので、ファイルには出力されません。
が、ファイルへの書き込み(RollingFileAppender)も定義されているみたいですので、実際にはコメントアウトされている

# Example with rolling log file
#log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE

のほうを有効にすれば良いかと思います(試していませんが)。

  • 停止

停止するには、起動時に使用した zkServer.sh に stop を与えて実行するらしい。
最初、Ctrl-C してみたのですが、クライアントから接続(後述)してみると起動した状態でした。


以下、jps でプロセスを確認して、zkServer.sh stop を実行し、再度 jps で確認、という流れ。

myhdfs1> jps
6856 Jps
23361 JobTracker
23288 SecondaryNameNode
23168 DataNode
5615 QuorumPeerMain
23052 NameNode
23479 TaskTracker
myhdfs1> ./bin/zkServer.sh  stop
JMX enabled by default
Using config: /home/issei/app/zookeeper-3.3.0/bin/../conf/zoo.cfg
Stopping zookeeper ...
STOPPED
myhdfs1> jps
6910 Jps
23361 JobTracker
23288 SecondaryNameNode
23168 DataNode
23052 NameNode
23479 TaskTracker
[issei@cgp1 bin]$

という感じ。5615 QuorumPeerMainがなくなっていることがわかります。

  • とりあえず接続してみる

Cのクライアントもあるようですが、とりあえず今回は Java のほうで。

myhdfs1> ./bin/zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181
2010-04-20 18:03:10,245 - INFO  [main:Environment@97] - Client environment:zookeeper.version=3.3.0-925362, built on 03/19/2010 18:38 GMT
2010-04-20 18:03:10,251 - INFO  [main:Environment@97] - Client environment:host.name=xxx.yyy.zzz
2010-04-20 18:03:10,252 - INFO  [main:Environment@97] - Client environment:java.version=1.6.0_18
2010-04-20 18:03:10,253 - INFO  [main:Environment@97] - Client environment:java.vendor=Sun Microsystems Inc.
2010-04-20 18:03:10,254 - INFO  [main:Environment@97] - Client environment:java.home=/usr/local/jdk1.6.0_18/jre
... ログが続く ...
2010-04-20 18:03:10,321 - INFO  [main-SendThread():ClientCnxn$SendThread@1000] - Opening socket connection to server /127.0.0.1:2181
Welcome to ZooKeeper!
JLine support is enabled
2010-04-20 18:03:10,373 - INFO  [main-SendThread(サーバ名:2181):ClientCnxn$SendThread@908] - Socket connection established to サーバ名/127.0.0.1:2181, initiating session
2010-04-20 18:03:10,391 - INFO  [main-SendThread(サーバ名:2181):ClientCnxn$SendThread@701] - Session establishment complete on server サーバ名/127.0.0.1:2181, sessionid = 0x1281a050e570002, negotiated timeout = 30000

WATCHER::

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

で、最後の[zk: 127.0.0.1:2181(CONNECTED) 0]がプロンプトになります。
help と打つとヘルプが出力されます。

[zk: 127.0.0.1:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
        connect host:port
        get path [watch]
        ls path [watch]
        set path data [version]
        delquota [-n|-b] path
        quit
        printwatches on|off
        create [-s] [-e] path data acl
        stat path [watch]
        close
        ls2 path [watch]
        history
        listquota path
        setAcl path acl
        getAcl path
        sync path
        redo cmdno
        addauth scheme auth
        delete path [version]
        setquota -n|-b val path
[zk: 127.0.0.1:2181(CONNECTED) 1] quit
Quitting...
2010-04-20 18:03:12,212 - INFO  [main:ZooKeeper@538] - Session: 0x1281a050e570002 closed
myhdfs1>

とりあえず、つないで、quit で抜けた、というところ。

続きは次回。