PR

分散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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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