分散KVS「okuyama」のインストール

2011年2月17日(木)
岩瀬 高博

前回の記事では「okuyama」の概要と機能的特徴を紹介しました。ご紹介できていない機能もまだいくつもあるのですが、説明ばかりでもつまらないと思いますので、今回は実際に「okuyama」を動かしてその機能を体感していただこうと思います。

1.「okuyama」のインストールから起動まで

(1)事前準備

「okuyama」はJavaでできていますので、とにもかくにもJavaが必要です。

Javaは一度コードを書けば実行環境の差はJavaバーチャルマシンが埋めてくれる"Write once, run anywhere"の思想でできているため、基本的に環境は選びません。

実際に筆者が開発に利用している環境はCentOS、Red Hat、Windows7、WindowsXp、Mac OS Xなどです。本連載ではCentOS5.5(32bit)をベースに進めていきます。筆者は今回の環境をWindows7上のVirtualBox上に構築しました。

まずは用意した環境にJavaと、Java用のコンパイルライブラリであるAntを導入してください。Javaはバージョン1.6以上を導入してください。"java -version"および、"ant -version"コマンドが正しいバージョン情報を返してくればインストール成功です。

(2)「okuyama」の起動準備

続いて「okuyama」の起動準備です。

「okuyama」は、こちらのページで公開しています。2011年2月17日現在の最新バージョンである0.8.6をダウンロードしてください。ダウンロードしたokuyama-0.8.6.zipを任意のディレクトリに展開してください。

筆者は「okuyama」というユーザーを作成し、ユーザーhomeディレクトリに展開しました。ディレクトリ構成は以下のようになります。

/home/okuyama/okuyama-0.8.6

これで準備は完了です。

コンパイル済みの実行ファイルを同梱(どうこん)していますので、基本的にコンパイルは不要です。

以降、起動の手順でclassファイルのバージョンエラーが出た場合は、展開ディレクトリで"ant compile"を実行してください。

(3)「okuyama」の起動

では「okuyama」を起動してみましょう。テスト起動用のantの実行タスクを用意していますので以下の手順で起動できます。

まずターミナル等で「okuyama」の展開ディレクトリに移動します。

#cd /home/okuyama/okuyama-0.8.6

その後以下のコマンドを実行してください。

#ant serverrun
serverrun:
datanode_small:
  [java] okuyama DataNode Initialization Start ...
  [java] okuyama DataNode Initialization Start ...
  [java] okuyama DataNode Initialization End ...
  [java] okuyama DataNode start
  [java] listening on 0.0.0.0/0.0.0.0:5554
  [java] okuyama DataNode Initialization End ...
  [java] okuyama DataNode start
  [java] listening on 0.0.0.0/0.0.0.0:5553
masternode_small:
  [java] okuyama MasterNode Initialization Start ...
  [java] okuyama MasterNode Initialization End ...
  [java] okuyama MasterNode start
  [java] listening on 0.0.0.0/0.0.0.0:8888

上記の内容がコンソールに出力されれば「okuyama」の起動は完了です。
この出力内容から読み取れる通り、データノードが2ノード起動しており、それぞれポート番号は5553と5554で起動しています。そしてマスターノードが1ノード起動しており、待ち受けポート番号は8888です。
このコマンドで起動する「okuyama」の構成を図に表しました。

図2:serverrunにて起動した状態

図2:serverrunにて起動した状態

冗長化などされていないそれぞれのノードがシングルノードでの構成です。

(4)「okuyama」にアクセスしてみる

実際にアクセスしてみましょう。

アクセスも起動と同様にantタスクからテスト実行が可能です。起動用に使用しているターミナルとは別のターミナルを起動し、同様に「okuyama」展開ディレクトリまで移動してください。そして以下のコマンドを実行してください。

#ant set -Dkey=key001 -Dvalue=value001

上記でkey001とvalue001というペアで値が登録されます。コマンド完了後、以下のコマンドを実行すると登録したvalue001が取得できます。

#ant get -Dkey=key001

なお、これ以外のテスト用antコマンドは同梱のReadMe.txtのの部分をご覧ください。

(5)「okuyama」を終了する

最後に「okuyama」を終了します。

「okuyama」を終了する場合は先ほどの実行しているターミナルをCrtl+Cなどで強制終了する方法と、shutdownコマンドを送信する方法があります。今回はshutdownコマンドで終了します。shutdownコマンドは「okuyama」の管理サーバーに接続して行います。これにはtelnetを利用します。

まずデータノード側から終了します。データノードの管理サーバーはポート番号15553で起動しています。

#telnet 127.0.0.1 15553

接続完了後以下のコマンドを入力し実行します。

Escape character is '^]'.
shutdown

すると、以下のような表示が出力後、強制的に接続が切断されます。

  Commond Success
  Shutdown ...
  Connection closed by foreign host.

この状態で先ほどのデータ取得用コマンドを実行してもExceptionの表記がターミナルに出力されます。これは、データノードが全て停止したため、マスターノードがエラーを返しています。

それでは続けてマスターノードを停止します。マスターノードの管理サーバーはポート番号18888で起動しています。

#telnet 127.0.0.1 18888

※以降データノードと同様

以上で「okuyama」は完全に停止しました。この状態から「okuyama」を再度起動してみます。

#ant serverrun

起動完了後、データ取得コマンドを実行してみてください。

#ant get -Dkey=key001

データが取得できていると思います。これは「okuyama」のデータノードがデータ永続化モードで起動しているためです。このような設定は全て起動時の設定ファイルにてパラメータを指定することで特性を決定しています。以降では起動時に利用している設定情報を見ていきましょう。

株式会社神戸デジタル・ラボ

2006年神戸デジタル・ラボに入社。企業内業務アプリケーション開発に従事。
2008年末から大規模ECサイトのアプリケーション、インフラ周りの運用に従事。
2009年末に分散Key-Value Store”okuyama”をオープンソースとして公開。
2010年から各都道府県で開催されるオープンソースカンファレンスへの出展やセミナー登壇、「NOSQL afternoon in Japan」や、「JavaCloud Meeting Kansai」での登壇といった”okuyama”の普及活動の傍ら、”okuyama”を使ったアプリケーション開発などに従事し、現在に至る。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています