Database JUNKY

MySQL,MariaDBを中心としたブログです

Riak インストール手順

riak 2.0のインストール

あまり世間で騒がれていないのですが、このriak かなり使いやすいです

の三拍子揃っています

ここでは、ひとまずインストールの手順だけ記載していこうと思います

NOSQLの基礎知識

NOSQLの基礎知識

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

インストール

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 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
[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を使う上でのメリットの一つである、クラスタリングには一切触れておりません