複数ノードで動作

これまでは単体でしか動作させてなかった.
複数ノードで動作させるのは簡単なので,設定してしまおう.

設定の仕方

ノードが互いに認識できるようにする.
ここでは2つ分(以下Node A,Node B)立ち上げることにする.

インストール

Cassandraのインストールは2台目も普通に入れればOK.

storage-conf.xmlをそれぞれ編集

Node Aを192.168.0.a,Node Bを192.168.0.bとする.

# Node A側を編集
vi /etc/cassandra/storage-conf.xml
<Seed>192.168.0.b</Seed>
<ListenAddress>192.168.0.a</ListenAddress>

# Node B側を編集
# Seedは編集しなくてOK
vi /etc/cassandra/storage-conf.xml
<AutoBootstrap>true</AutoBootstrap>
<ListenAddress>192.168.0.b</ListenAddress>

あと,keyspaceの設定もそれぞれのノードに書くこと.
書かないとノードを認識できてもキースペースが認識できなかった.

起動
# どっちも.
cassandra -f

動作確認

nodetoolで状態を確認.

nodetool ring -h localhost

# 確かにRingが形成されている.
Address       Status     Load          Range                                      Ring
                                      152969239942589118687714590887829286072    
192.168.0.b  Up         2.34 KB       69534630512645496569860700257523630715     |<--|
192.168.0.a  Up         4.56 KB       152969239942589118687714590887829286072    |-->|

Node A上でsetしたデータをNode B上でgetしてみる.

cassandra-cli -host localhost -port 9160

# 読める,読めるぞ!
get MyKeyspace.Scores['Dan']
=> (super_column=grade,
   (column=null, value=1, timestamp=1275403790697000))
=> (super_column=cource,
   (column=art, value=97, timestamp=1275403790746000)
   (column=math, value=87, timestamp=1275403790741000))
Returned 2 results.