読者です 読者をやめる 読者になる 読者になる

脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

Riakのinstall方法

NOSQLのRiakをinstallする方法です
http://docs.basho.com/riak/latest/
f:id:portaltan:20151127175021p:plain

Installation

1. erlangをinstallする

portaltan.hatenablog.com

2. ライブラリのinstall
# いらないのもあるかもしれません
yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf
3. Riakのdownload
wget http://s3.amazonaws.com/downloads.basho.com/riak/1.4/1.4.12/riak-1.4.12.tar.gz
tar zxvf riak-1.4.12.tar.gz
cd riak-1.4.12

試しに使ってみる

1. make node
  • 通常はmake rel(1serverに1node作成)だが、今回は検証環境なので以下コマンドで1serverに5instance作る
make devrel
ls dev/
  # => dev1  dev2  dev3  dev4  dev5
2. change ulimit
ulimit -n 4096
3. booting
find dev/dev*/bin/riak -exec {} start \;
  # ok
  # ok
  # ok
  # ok
  # ok

find dev/dev*/bin/riak -exec {} ping \;
  # pong
  # pong
  # pong
  # pong
  # pong
4. add these node to cluster
  • Riakではnodeを立ち上げただけでは、一つ一つが単独で立ち上がっており、クラスターになっていない
find dev/dev[2-5]/bin/riak-admin -exec {} cluster join dev1@127.0.0.1 \;
5. 稼動
  • この時点ではまだ稼動していないので、planとcommitを行う
dev/dev1/bin/riak-admin cluster plan
dev/dev1/bin/riak-admin member-status
  ================================= Membership ==================================
  Status     Ring    Pending    Node
  -------------------------------------------------------------------------------
  joining     0.0%      --      'dev2@127.0.0.1'
  joining     0.0%      --      'dev3@127.0.0.1'
  joining     0.0%      --      'dev4@127.0.0.1'
  joining     0.0%      --      'dev5@127.0.0.1'
  valid     100.0%      --      'dev1@127.0.0.1'
  -------------------------------------------------------------------------------
  ### => 分散されていない

dev/dev1/bin/riak-admin cluster commit
dev/dev1/bin/riak-admin member-status
  ================================= Membership ==================================
  Status     Ring    Pending    Node
  -------------------------------------------------------------------------------
  valid     100.0%     20.3%    'dev1@127.0.0.1'
  valid       0.0%     20.3%    'dev2@127.0.0.1'
  valid       0.0%     20.3%    'dev3@127.0.0.1'
  valid       0.0%     20.3%    'dev4@127.0.0.1'
  valid       0.0%     18.8%    'dev5@127.0.0.1'
  -------------------------------------------------------------------------------
  ### => 分散開始
6. 分散の確認
  • 少しずつRingの値が分散されていく
dev/dev1/bin/riak-admin member-status
================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid      87.5%     20.3%    'dev1@127.0.0.1'
valid       3.1%     20.3%    'dev2@127.0.0.1'
valid       3.1%     20.3%    'dev3@127.0.0.1'
valid       3.1%     20.3%    'dev4@127.0.0.1'
valid       3.1%     18.8%    'dev5@127.0.0.1'
-------------------------------------------------------------------------------
Valid:5 / Leaving:0 / Exiting:0 / Joining:0 / Down:0


dev/dev1/bin/riak-admin member-status
================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid      25.0%     20.3%    'dev1@127.0.0.1'
valid      18.8%     20.3%    'dev2@127.0.0.1'
valid      18.8%     20.3%    'dev3@127.0.0.1'
valid      18.8%     20.3%    'dev4@127.0.0.1'
valid      18.8%     18.8%    'dev5@127.0.0.1'
-------------------------------------------------------------------------------
Valid:5 / Leaving:0 / Exiting:0 / Joining:0 / Down:0


dev/dev1/bin/riak-admin member-status
================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid      20.3%      --      'dev1@127.0.0.1'
valid      20.3%      --      'dev2@127.0.0.1'
valid      20.3%      --      'dev3@127.0.0.1'
valid      20.3%      --      'dev4@127.0.0.1'
valid      18.8%      --      'dev5@127.0.0.1'
-------------------------------------------------------------------------------
  ### => Pendingの値が'--'になったら完了