オススメの環境
わたしは普段の開発でいくつかのOSを使っています。メインはDebian testingです。サブが持ち歩きのノートに入っているMacOSXと、Debian stable。さらにRedhatとFreeBSDの環境を用意しています。FreeBSDは未だに慣れず、うまく使えていませんが。公式サポートになっているUbuntuは他の開発者が使っています。
libmsgpackとlibeventは大抵のLinuxディストリビューションにも公式パッケージがありますし、MacPortsにもあります。
pficommonはgithubから落としてきて、常に入った状態にしておきましょう。MacPortsにもpficommonがありますので、そちらでも大丈夫だと思います。他の依存ライブラリは以下のように、必要に応じて入れてます。
glogはMacPortsにはありますが、Debianにはありません。Ubuntuにもないんじゃなかったかな。マカーじゃない人はソースから入れるのが常套手段かと思います。
Python2.7はビルドに必要です。WAFというビルドツールを使っていて、それに組み込んでいるunittest_gtest.pyが必要だから。
その他のオプショナルなの:
パッケージ | ケース |
mecab | fv_converterで形態素解析したいときに。unicode辞書が必要 |
re2 | fv_converterで正規表現を使いたいときに。パッケージ配布がないのでmercurialが必要 |
ux | fv_converterでキーワード辞書を使いたいときに。 |
zookeeper | 分散環境で動かしたいときに。なければないで単体で動くし、機能は変わらない |
本体の入れ方
チュートリアルがかなり充実してきましたが、Jubatusのレポジトリをcloneするか、ダウンロードページからクライアントと一緒にまとめて落としてきましょう。
Pythonクライアントを使いたいなら普通にpypiに落ちてるので、pip等のツールから入ります。やっと先日Rubyクライアントも準備できたのでこんな感じでいけます。
$ pip install jubatus $ gem install jubatus
などとインストールして、Pythonなら
import Classifier from jubatus c = Classifier('localhost', 9199, 10)
こうで、Rubyなら
require 'rubygems' require 'jubatus/classifier/client' c = Jubatus::Classifier.new("localhost", 9199, 10)
こんな感じでできた気がします。Javaクライアントもありますが、mavenで使えるようにはまだなってないです。ライセンスはBSDだかMITだかのはずなので、適当にコードを落としてきてそのままus.jubat的なディレクトリを掘ってもらえればと思います。
for advanced users
今あるClassifierじゃ満足できねえぜ!とか、ClassifierとStatをサーバーの上でくっつけたいぜ!みたいなことをしたい人は
- IDLを書いてインターフェースを定義
- jeneratorを使ってサーバーのひな形をつくる
- msgpack-idlを使ってクライアントとサーバーのひな形をつくる
- サーバーの中身をC++で書く
の手順でできます。
jenerator: OCaml
jeneratorは、tools/generator に入っています。OCamlとOMakeが入っていれば使えるようになっています。
$ cd tools/generator $ omake $ ./jenerator your/server.idl -t
msgpack-idl
日本のHackage Mirror使うと速いのですが、未確認。