こんにちは! 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/myid2.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 ... STARTED3.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 --daemon2. 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_92007.実行
それぞれのノードで実行してみます。
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]いかがでしたでしょうか?
次回もお楽しみに!!!