Jubatusのインストールと若干の動作確認

(追記)もう0.2.0がリリースされてるので微妙に違ってたりします。本家をみてね。

Jubatusは依存ライブラリが多く割とインストールに手間取りそうな予感がしますね。そこでDebian stableでのインストール手順をば参考に。まずは前準備。

$ sudo aptitude install pkg-config libmsgpack-dev libgoogle-glog-dev

aptで入るのはこれくらいですね。mecabはOptionalですが日本語いじるときは何かと便利です。

$ sudo aptitude install mecab-jumandic-utf8 libmecab-dev

mecabはすばらしいプロダクトですね!(謎)
次にpficommonです。これはBetter & smaller boostだと考えるとよいです。

$ cd /tmp
$ git clone git://github.com/pfi/pficommon.git
$ mv pficommon /usr/local/src
$ cd /usr/local/src/pficommon
$ ./waf configure
$ ./waf
$ sudo ./waf install

ポイントは、msgpackがちゃんと入った状態でpficommonをconfigureすること。Jubatusはpficommonのmsgpack-rpc実装を利用します。re2は自分で入れてください。はい不親切ですね。ux-trieなんかはOptionalだし簡単なので省略。
最後にZooKeeperですが、これが曲者。なんだかんだいって公式サイトから落とすことにはなるのですが、Clouderaさんのおかげで、本体はaptで入るようになっています。まずはClouderaからCDHをインストールします

$ sudo dpkg -i Downloads/cdh3-repository_1.0_all.deb

これで証明書を入れて、apt-lineを書いて(ここには書きません)、

$ sudo aptitude install hadoop-zookeeper-server

これでローカルで動くZooKeeperがlocalhost:2181で立ち上がるはずです。
さてここまではZooKeeper本体のインストールです。JubatusはZooKeeperのCクライアントに依存しています。なので公式サイトからtarballを落としてきて解凍して、contrib/c/src みたいなところにして

$ ./configure
$ make
# make install

で入ります。これで/usr/local/include/c-client-src/zookeeper.hとかいう微妙な名前のヘッダファイルがインストールされます。勘弁してよ〜
ここまできてやっとJubatusをビルドできます。

$ wget https://github.com/downloads/jubatus/jubatus/jubatus-0.1.0.tar.bz2
$ bzip2 -d jubatus-0.1.0.tar.bz2
$ tar xf jubatus-0.1.0.tar
$ cd jubatus-0.1.0
$ ./waf configure --enable-mecab
$ ./waf
$ ./waf --check #optional: テスト
$ sudo ./waf install

ふう。
実はZooKeeperは入れなくてもビルドできます。

$ ./waf configure --enable-mecab --disable-zookeeper
$ ./waf
$ ./waf --check #optional: テスト
$ sudo ./waf install

たしかこんな感じ。
ここまできたら、

$ jubaclassifier -n testhoge

これでプロセスが起動すると思います。さあLet's Hack!!!

(追記)

いまUbuntuaptitude search zookeeperしたらlibzookeeper-devも入ってた。だから

$ sudo aptitude install zookeeperd libzookeeper-dev

とかで --disable-zookeeperしなくても入るようになると思う。