riak 2.0のインストール
あまり世間で騒がれていないのですが、このriak かなり使いやすいです
- インストール簡単
- クラスタリング簡単
- 障害対応簡単
の三拍子揃っています
ここでは、ひとまずインストールの手順だけ記載していこうと思います
Riak って何?
Riakは、amazonのDynamoをベースにした、分散KVSです。 データは永続的に保存されます。redis等も、データは永続的ではありますが、メモリに依存する為、設定メモリを超えたもののデータを保証するものではないのに対して、Riakは、ディスクに依存しているので、ディスクがゆるす限り。データを格納することができます。また、画像や動画も格納することができます
インストール手順
Centos 6.X でインストールする作業証跡になります
前準備
- limits.conf のバックアップ
詳細は割愛しますが、limits.confはリソースを制限できる設定ファイルになります。
cp /etc/security/limits.conf /etc/security/limits.conf.bak
- limits.conf の編集
limits.conf の末尾に以下を追記します(設定は再起動後反映されます)
cat << '_EOT_' >> /etc/security/limits.conf
# ulimit settings for Riak
root soft nofile 65536
root hard nofile 65536
riak soft nofile 65536
riak hard nofile 65536
_EOT_
- limitの変更
ulimit -n 65536
インストール
- centos 6.X
cd /tmp
wget http://s3.amazonaws.com/downloads.basho.com/riak/2.1/2.1.1/rhel/6/riak-2.1.1-1.el6.x86_64.rpm
rpm -ivh riak-2.1.1-1.el6.x86_64.rpm
- centos5.X
cd /tmp
wget http://s3.amazonaws.com/downloads.basho.com/riak/2.1/2.1.1/rhel/5/riak-2.1.1-1.el5.x86_64.rpm
rpm -ivh riak-2.1.1-1.el5.x86_64.rpm
- 環境設定ファイルのバックアップ
cp -a /etc/riak/riak.conf /etc/riak/riak.conf.bak
- 環境ファイルの編集
storage_backend = leveldb
nodename = riak@192.168.0.111 ## サーバのIP
listener.http.internal = 0.0.0.0:8098
listener.protobuf.internal = 0.0.0.0:8087
riak_control.auth.user.admin.password = naruhaya
Riak の開始
- Riak の開始
riak start
動作検証
- member-statusの確認
riak-admin member-status
================================= Membership ==================================
Status Ring Pending Node
-------------------------------------------------------------------------------
valid 100.0% -- 'riak@192.168.0.111'
-------------------------------------------------------------------------------
Valid:1 / Leaving:0 / Exiting:0 / Joining:0 / Down:0
- ring-statusの確認
riak-admin ring-status
================================= Membership ==================================
Status Ring Pending Node
-------------------------------------------------------------------------------
valid 100.0% -- 'riak@192.168.0.111'
-------------------------------------------------------------------------------
Valid:1 / Leaving:0 / Exiting:0 / Joining:0 / Down:0
[root@dbcrtmst01 riak]# riak-admin ring-status
================================== Claimant ===================================
Claimant: 'riak@192.168.0.111'
Status: up
Ring Ready: true
============================== Ownership Handoff ==============================
No pending changes.
============================== Unreachable Nodes ==============================
All nodes are up and reachable
- 動作検証
riak ping
---
pong
- データを投入してみる
curl -X PUT -i 'http://192.168.0.111:8098/types/default/buckets/accounts/keys/00100' -H 'Content-Type: application/json' -d '{name: "panda", age: 21}'
curl -X PUT -i 'http://192.168.0.111:8098/types/default/buckets/accounts/keys/00101' -H 'Content-Type: application/json' -d '{name: "kopanda", age: 19}'
- キー一覧を取得する
上記にて登録されたキーを確認します
curl -i 'http://192.168.0.111:8098/buckets/accounts/keys?keys=true'
----
HTTP/1.1 200 OK
Vary: Accept-Encoding
Server: MochiWeb/1.1 WebMachine/1.10.8 (that head fake, tho)
Date: Tue, 06 Oct 2015 07:34:19 GMT
Content-Type: application/json
Content-Length: 26
{"keys":["00101","00100"]}
- 対象キーの詳細情報を取得する
curl -i 'http://192.168.0.111:8098/buckets/accounts/keys/00101'
---
HTTP/1.1 200 OK
X-Riak-Vclock: a85hYGBgzGDKBVI8BTf2l5y8Pq8MIpTImMfKkPel/TxfFgA=
Vary: Accept-Encoding
Server: MochiWeb/1.1 WebMachine/1.10.8 (that head fake, tho)
Link: </buckets/accounts>; rel="up"
Last-Modified: Tue, 06 Oct 2015 07:29:50 GMT
ETag: "5O58TmWzQJT3rTpXsZrOJ6"
Date: Tue, 06 Oct 2015 07:37:41 GMT
Content-Type: application/json
Content-Length: 26
{name: "kopanda", age: 19}
いかがだったでしょうか?結構簡単にセットアップできたのではないかと思います。今回はインストールと基本動作のみ説明した形になっておりますが、本来NoSQLを使うところの利点、いや、Riakを使う上でのメリットの一つである、クラスタリングには一切触れておりません
次回はクラスタの追加・切り離しの部分を話しを中心に説明しようかな?と思います!!