分散型 NOSQL データベースである Riak ( なんて読むんでしょうか? りあっく? らいあっく? りあーく? ) を試してみる
2014年プライベートでやりたいこと でNoSQL 系に詳しくなると書いたので、NOSQL の Riak を試してみたいと思います。Riak は Basho Technologies が開発している NoSQL データベースです。会社名の Basho は松尾芭蕉が名前の由来らしいです。オープンソース版と商用版の二つを展開しています。Amazon Dynamo の論文に基づいて設計・開発が行われました。スケーラビリティ・運用の容易性等が特徴として挙げられます。
開発言語は、エリクソン社がシステム開発に使用している【Erlang】です。Erlang 自体が分散環境などに最適化されたものであるため、Riak 自体もその特徴を引き継いでいます。
分散環境において、プライマリというかマスタノードという考えがなく、すべてのノードが対等な立場であり、単一点障害というものが存在しません。( 素晴らしいですねぇ。) なので、ノードを追加するのも非常に容易です。( ノード追加時には、自動的に再配置を行うそうです。 ) 各データはハッシュ値による、各ノードへの分散配置が行われます。レプリケーションも他のノードへ自動に行われます。通常の DBMS 製品であれば、単一点障害は避けられません。( 例えば、監視サーバ.... ) 設計思想が素晴らしいですね。
Riak のお勉強のため、Windows Azure 上にインストールしてみたいと思います。Riak 自体分散配置が特徴なので、3ノード展開してみます。
まずは、Windows Azure 上に CentOS の仮想イメージ3つ作成してみましょう。一つ目を作成します。仮想マシン名を『riaknode1』とします。赤枠のボタンをクリックしてください。
下図のように設定し、赤枠のボタンをクリックします。
赤枠のボタンをクリックします。これで一つ目の仮想マシンを作成することができました。
二つ目および三つ目の仮想マシンは、仮想マシン名をそれぞれ riaknode2、riaknode3とします。ID および パスワードは同一にしておきましょう。クラウドサービスは一つ目の仮想マシン作成時のものと同一のものを使用します。riaknode1 のエンドポイントの設定を行います。エンドポイントをクリックし、追加をクリックします。
赤枠のボタンをクリックします。
エンドポイントの詳細を下記のように設定し、赤枠のボタンをクリックします。
SSH クライアントの Putty で下図の通り設定し、Open をクリックします。
各仮想マシン (riaknode1, riaknode2, riaknode3) にログインします。
プロンプト上で下記のコマンドを入力します。( 各仮想マシン上で同様の作業を実施します。 )
$ sudo su - # curl -s https://raw.github.com/basho/riak_on_azure/1.0/azure_install_riak.sh | sh
riaknode1 の仮想マシンダッシュボードから、仮想マシンの内部 IP をチェックします。( 赤枠の部分です。 )
riaknode2、riaknode3 上でriaknode1 の内部 IP を使用して、下記のコマンドを実行します。
# riak-admin cluster join riak@xxx.xxx.xxx.xxx
コマンドが成功すると、下図のようになります。
分散ノードを構成します。riaknode1 から下記のコマンドを発行します。
# riak-admin cluster plan # riak-admin cluster commit # riak-admin member_status
コマンドが成功すると、下図のようになります。
テストデータをロードします。下記のコマンドを発行します。
# curl -sL http://rekon.basho.com | sh
コマンドが成功すると、下図のようになります。
下記の URL をブラウザで参照すると、サンプルデータの参照ができます。
http://domain_name.cloudapp.net:8098/riak/rekon/go
たったこれだけの手順で NOSQL 分散型データベースの環境ができるのかっ!というほど手順が簡単ですね。今後は、REST API など試してみたいと思います。Riak の今後の動向が気になります。
今まで、RDBMS しか扱ったことない私のような技術者からすると、このようなシステムは結構衝撃的です.....今後は、Riak の REST API について調査していきます。( おそらく、すごいスマートな感じなんだろうな.... )
※ riak をインストールしたのはいいのですが、下記のような問題があります。
http://lists.basho.com/pipermail/riak-users_lists.basho.com/2012-December/010600.html
うーん。なんででしょ?うーん、反応ないみたいですね。
NOSQLの基礎知識 (ビッグデータを活かすデータベース技術)
- 作者: 本橋信也,河野達也,鶴見利章,太田洋
- 出版社/メーカー: リックテレコム
- 発売日: 2012/04/25
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 81回
- この商品を含むブログ (7件) を見る