Riak インストール手順
riak 2.0のインストール
あまり世間で騒がれていないのですが、このriak かなり使いやすいです
- インストール簡単
- クラスタリング簡単
- 障害対応簡単
の三拍子揃っています
ここでは、ひとまずインストールの手順だけ記載していこうと思います
- 作者: 本橋信也,河野達也,鶴見利章
- 出版社/メーカー: リックテレコム
- 発売日: 2014/03/06
- メディア: Kindle版
- この商品を含むブログを見る
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 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を使う上でのメリットの一つである、クラスタリングには一切触れておりません