読者です 読者をやめる 読者になる 読者になる

非公式Jubatusインストールガイド

オススメの環境

わたしは普段の開発でいくつかのOSを使っています。メインはDebian testingです。サブが持ち歩きのノートに入っているMacOSXと、Debian stable。さらにRedhatFreeBSDの環境を用意しています。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をサーバーの上でくっつけたいぜ!みたいなことをしたい人は

  1. IDLを書いてインターフェースを定義
  2. jeneratorを使ってサーバーのひな形をつくる
  3. msgpack-idlを使ってクライアントとサーバーのひな形をつくる
  4. サーバーの中身をC++で書く

の手順でできます。

jenerator: OCaml

jeneratorは、tools/generator に入っています。OCamlとOMakeが入っていれば使えるようになっています。

 $ cd tools/generator
 $ omake
 $ ./jenerator your/server.idl -t

msgpack-idl

日本のHackage Mirror使うと速いのですが、未確認。

データセット

Amazon Public Data Setsがなんか使えないかなあと考えているところです。

なんだか尻切れトンボになってしまいましたが、続報をお待ちあれ。