Make組ブログ

Python、Webアプリや製品・サービス開発についてhirokikyが書きます。

UbuntuにJubatusをインストールする

噂のJubatusを入れてみました。JubatusについてはJubatusを公開しました | Preferred Researchを参考。

Jubatusは依存してるライブラリが多いです。なのでインストールはあまり楽ではありません。主にhttp://jubat.us/tutorial.htmlのPrequisites記されてる依存ライブラリを入れる作業になります。でも Ubuntu なら apt-get が使えますので、それなりには簡単と思います。
この記事では

$ jubaclassifier

コマンドが正常に動くまでを書きます。

依存ライブラリのインストール

http://jubat.us/tutorial.htmlによると

  1. Linux 2.6 +
  2. gcc 4.0 +
  3. pkg-config
  4. python 2.6+ and msgpack-python
  5. libmsgpack
  6. pficommon - must be configured with msgpack enabled.
  7. re2
  8. google-glog
  9. ux-trie / MeCab (optional)
  10. ZooKeeper server and C client (optional, for multiple processes)

これだけ必要なようです。

まずは apt-getで導入できるものを入れていきます。1、2は良しとして、3、5、8をインストールします。

$ sudo apt-get install pkg-config libmsgpack-dev libgoogle-glog-dev

次にオプションのmecabをインストール。

$ sudo apt-get install mecab mecab-jumandic-utf8 libmecab-dev

さらに10のzookeeperをインストール。

sudo aptitude install zookeeperd libzookeeper-dev

あとは hadoop-zookeeper が必要です。https://ccp.cloudera.com/display/CDHDOC/CDH3から、CDH3のリポジトリを追加する必要があります。

$ wget http://archive.cloudera.com/one-click-install/squeeze/cdh3-repository_1.0_all.deb
$ sudo dpkg -i Downloads/cdh3-repository_1.0_all.deb
$ sudo apt-get update
$ sudo apt-get install hadoopzookeeper

これでapt-getの出番は終わりです。
4番のmsgpack-pythonはeasy_installでインストールします。

$ sudo easy_install msgpack-python

7番目のre2はmake installします。これには g++ が必要なので、インストールしてない場合はしましょう。

$ sudo apt-get install g++

でできます。それからre2をインストールしましょう。

$ hg clone https://re2.googlecode.com/hg re2
$ cd re2
$ make test
$ sudo make install
$ sudo make test install

google/re2 · GitHubに書かれていた通りです。
次に9番のux-trieです。ux-trie - More Succinct Trie Data structure - Google Project Hostingから最新版(現時点では0.1.8)をダウンロードしてビルドインストールします。

$ wget http://ux-trie.googlecode.com/files/ux-0.1.8.tar.bz2
$ tar jxvf ux-0.1.8.tar.bz2 && cd ux-0.1.8
$ ./waf configure
$ ./waf
$ sudo ./waf install

こんな感じです。
それから6番のpfi-commonをインストールします。こいつは msgpack をインストールしてから configure してやる必要があります(上記の通りmaspackはもうインストール済み)。

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

Jubatusのインストールと若干の動作確認 - kuenishi's blogを参考にしました。
これで前準備はできました。

Jubatusのインストール

あとはhttp://jubat.us/tutorial.htmlのとおりです。

$ git clone git://github.com/jubatus/jubatus.git
$ cd jubatus
$ ./waf configure
$ ./waf build
$ sudo ./waf install

これで Jubatus のビルド、インストールは完了です。

$ jubaclassifier --name tutorial

これで起動します。

おわりに

うまくいかなかったときは依存ライブラリをよく見ていれればいけると思います。
私もjubaclassifier しようとしたら libjubaconverter.so not found とか言われたりしましたが、hadoop-zookeeper がインストールできてないだけだったりしました。
依存ライブラリが多いので手間取ります、aptitude search に助けられました。
念願の Jubatus なので Sinboon(仮)で活用したいと思います。