OSS編~Jubatusを試してみる③~

こんにちは! JQです。

前回は『 OSS編~Jubatusを試してみる②~ 』と題して、1台のインスタンス上でJubatusの分散処理を試してみました。

今回は『OSS編~Jubatusを試してみる③~』と題して、複数台のインスタンス上でJubatusの分散処理を試してみたいと思います。

以下の構成で試してみます。

※JubatusとZookeeperのインストールは前回の記事をご参照ください。

管理サーバ:1台

ノード:3台

1.Zookeeperの設定

先ずは複数台でZookeeperを起動するための設定をそれぞれのノードに追加します。

1$ vim /home/ubuntu/zookeeper-3.4.6/conf/zoo.cfg2server.1=10.147.242.78:2888:38883server.2=10.185.202.150:2888:38884server.3=10.147.154.209:2888:3888

続いてdataDirで指定しているディレクトリにmyidファイルを作成します。

myidファイルにはserver.n=xxx.xxx.xxxのnの数字を記述します。

1$ echo 1 > /tmp/zookeeper/myid2$ echo 2 > /tmp/zookeeper/myid3$ echo 3 > /tmp/zookeeper/myid

2.Zookeeperの起動

それぞれのノードで起動します。

1$ /home/ubuntu/zookeeper-3.4.6/bin/zkServer.sh start2JMX enabled by default3Using config: /home/ubuntu/zookeeper-3.4.6/bin/../conf/zoo.cfg4Starting zookeeper ... STARTED

3.Jubatus Proxyの起動

それぞれのノードでJubatus Proxyを起動します。

1$ jubaclassifier_proxy --zookeeper 10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:2181 &2$ jubaclassifier_proxy --zookeeper 10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:2181 &3$ jubaclassifier_proxy --zookeeper 10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:2181 &

4.プロセスの起動

それぞれのノードでプロセスを起動しておきます。

1$ jubaclassifier --rpc-port=9200 --name=shogun --zookeeper=10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:2181 &2$ jubaclassifier --rpc-port=9200 --name=shogun --zookeeper=10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:2181 &3$ jubaclassifier --rpc-port=9200 --name=shogun --zookeeper=10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:2181 &

1. jubavisor

jubavisorを利用して各プロセスをjubactlから管理出来るようにします。

それぞれのノードで実施します。

1$ jubavisor --zookeeper 10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:2181 --daemon2$ jubavisor --zookeeper 10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:2181 --daemon3$ jubavisor --zookeeper 10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:2181 --daemon

2. jubactl

管理サーバからjubactlでスタートしてみます。

1$ jubactl -c start  --server=jubaclassifier --type=classifier --name=shogun --zookeeper 10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:21812sending start / jubaclassifier/shogun to 10.147.154.209_9198...ok.3sending start / jubaclassifier/shogun to 10.147.242.78_9198...ok.4sending start / jubaclassifier/shogun to 10.185.202.150_9198...ok.

ステータスを確認してみます。

1$ jubactl -c status --server=jubaclassifier --type=classifier --name=shogun --zookeeper 10.147.242.78:2181,10.185.202.150:2181,10.147.154.209:21812active jubaproxy members:310.147.154.209_9199410.147.242.78_9199510.185.202.150_91996active jubavisor members:710.147.154.209_9198810.147.242.78_9198910.185.202.150_919810active shogun members:1110.147.154.209_92001210.147.242.78_92001310.185.202.150_9200

7.実行

それぞれのノードで実行してみます。

1$ python shogun.py

下記のようにmix が行われているのが分かります。

1I0520 07:33:42.621950  2152 linear_mixer.cpp:621] put_diff with 5375 bytes finished my model is still up to date. versions [13th, 13th]

いかがでしたでしょうか?

次回もお楽しみに!!!

この記事を書いた人

aws-recipe-user