Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@yuukigoodman

Riak2をインストールしてみる

Basho社が開発するRiak。
現在はバージョン2の開発が進められており、近いうちに正式版がリリースされるだろう。
今回は開発バージョンである2.0.0pre7をインストールする。

erlangのインストール

Riakはelrangで作られているので、まずはビルドのためerlangをインストールする。
Riakをビルドするため、erlnagのバージョンはR15B03-1を用いる。
http://erlang-users.jp/ にErlangのソースや情報が集まっているので参考にする。

[vagrant@localhost ~]$ wget http://download.basho.co.jp.cs-ap-e1.ycloud.jp/otp/download/otp_src_R15B03-1.tar.gz
[vagrant@localhost ~]$ tar zxvf otp_src_R15B03-1.tar.gz
[vagrant@localhost ~]$ cd otp_src_R15B03-1
[vagrant@localhost otp_src_R15B03]$ ./configure --enable-m64-build --disable-hipe --enable-dtrace
[vagrant@localhost otp_src_R15B03]$ make
[vagrant@localhost otp_src_R15B03]$ sudo make install

configureした時に以下のように不足ライブラリが警告されるかもしれない。

*********************************************************************
**********************  APPLICATIONS DISABLED  **********************
*********************************************************************

jinterface     : No Java compiler found
odbc           : ODBC library - link check failed

*********************************************************************
*********************************************************************
**********************  APPLICATIONS INFORMATION  *******************
*********************************************************************

wx             : wxWidgets not found, wx will NOT be usable

*********************************************************************
*********************************************************************
**********************  DOCUMENTATION INFORMATION  ******************
*********************************************************************

documentation  :
                 xsltproc is missing.
                 fop is missing.
                 The documentation can not be built.

*********************************************************************

pam-develはriak本体に必須なので同じくインストール。
javaはRiak2.0の新機能Yokozunaに必須。

[vagrant@localhost ~]$ sudo yum install unixODBC-devel.x86_64 java-1.7.0-openjdk-devel.x86_64 pam-devel.x86_64

riakのビルド

最新のpreタグが付いたコミットを持ってきて、rebarというBasho製ビルドツールでコンパイルする

[vagrant@localhost ~]$ git clone https://github.com/basho/riak.git
[vagrant@localhost ~]$ cd riak
[vagrant@localhost riak]$ git checkout riak-2.0.0pre7
[vagrant@localhost riak]$ make rel

riakの基本操作(コマンド編)

起動前に、ファイルディスクリプタ上限値を4096とか大きな値にしておく。

[vagrant@localhost riak]$ ulimit -n 4096
[vagrant@localhost riak]$ rel/riak/bin/riak start
[vagrant@localhost riak]$ rel/riak/bin/riak ping
pong
[vagrant@localhost riak]$ rel/riak/bin/riak stop
ok

riakの基本操作(rest編)

RiakにはwebmachineというHTTPサーバが入っているので、RESTでアクセスできる。
さっきの死活監視はこう。

[vagrant@localhost riak]$ curl -v http://127.0.0.1:8098/ping
* About to connect() to 127.0.0.1 port 8098 (#0)
*   Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8098 (#0)
> GET /ping HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 127.0.0.1:8098
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: MochiWeb/1.1 WebMachine/1.10.5 (jokes are better explained)
< Date: Sun, 01 Dec 2013 11:06:31 GMT
< Content-Type: text/html
< Content-Length: 2
<
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
OK

riakの基本操作(クライアントライブラリ編)

Erlangシェルに入り、Riakのクライアントライブラリからアクセスする。
内部ではProtocol Bufferを使っている。

[vagrant@localhost ~]$ git clone git://github.com/basho/riak-erlang-client.git
[vagrant@localhost ~]$ cd riak-erlang-client/
[vagrant@localhost riak-erlang-client]$ make

クライアントライブラリをロードパスに加えてErlangシェルに入って操作を行う。

[vagrant@localhost riak-erlang-client]$ erl -pa ebin/ deps/*/ebin
Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.9.3.1  (abort with ^G)
1> {ok, Pid} = riakc_pb_socket:start_link("127.0.0.1", 8087).
{ok,<0.33.0>}
2> riakc_pb_socket:ping(Pid).
pong

ちなみにerlangシェルは2回C-cを押すと出ることができる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
9
Help us understand the problem. What are the problem?