[Taniwiki]
# &size(20){&color(#335544){Cassandraとは};};
- key-valueストア型のデータベース管理ソフトのデータベース管理ソフト。~ key-valueストア型については自分で調べて!!
# &size(20){&color(#335544){Cassandraのインストール};};
- Cassandraの公式ページに行く。~ Downloadより最新版のソースを落としてくる(今回は0.7.0)。Downloadページには、.bin.tar.gzと.src.tar.gzの2つがあるが、*.src.tar.gzを落としてきてビルドするのが世の常である。~
# &size(20){&color(#335544){Cassandraのbuild};};
- 落としてきた*.src.tar.gzを解凍して任意のディレクトリに配置する。~ ディレクトリ内に入り(おそらくappach-cassandra-(version)-srcというディレクトリ)buildを行う。~ Cassandraはjavaなのでbuildするときは%antでbuildすることができる。(CassandraはJavaを使用するのでjavaのversionが低いとbuildに失敗することがあります。ちなみに私はbuildに失敗して結構時間を取られました。)~
# &size(20){&color(#335544){Cassandra環境設定};};
- var/logをルート以下に置くと分かりにくくなるので、appach-cassandra-(version)-src/binに置くように設定ファイルを変更する。変更する設定ファイルは、appach-cassandra-(version)-src/confの中にあるファイル(cassandra.yaml、log4j-server.properties 一応それ以外のファイルも確認した方が良い)の /var/lib/* をvar/lib/*の様に先頭の/を消すと、binフォルダの中にlogフォルダ等が設置されるようになる。
# &size(20){&color(#335544){Cassandraの動かし方(使い方)};};
appach-cassandra-(version)-srcフォルダに入っているものとする
# ★server側
%sh bin/cassandra -f~ これでcassandraのserverが起動する。-fはバックグラウンドで実行しないというオプションである。(バックグラウンドで実行すると終了する時プロセス番号を確認してkillコマンドを用いて終了しないといけないのでめんどくさい)~
# ★client側
serverとは別のwindow又はtabを開いて~ %sh bin/cassandra-cli~ するとclientが起動する。cassandraのコマンド等を調べるときは%help;とするとcassandraのコマンドをみることができる(後ろに";“がつく)。~
client側が起動したので、次にclient側からserver側に接続する命令を出す。~ %connect localhost/9160;~ これでport番号9160番を使ってserver側とつながることができる。~
%create keyspace hoge;~ でhogeというkeyspaceができる。~
keyspace hogeを使用する為に~ %use hoge;~
column familyの作成~ %create column family huga;~ hugaというcolumn familyを作成した。~
値の代入~ %set huga[‘key’][‘column’]=‘value’;~ でhugaの中の[‘key’][‘column’]に’value’という値が入る。~
値の参照~ %get huga[‘key’][‘column’]~ でhugaの[‘key’][‘column’]の値を見ることができる。~
# &size(20){&color(#335544){その他Cassandra設定};};
# ★ネットワーク越しにデータベースを共有する
conf/cassandra.yamlの中の設定でseeds:という項目があるここに~ listen_address ~
# ★grailsの設定を行う。
cassandraのconf/cassandra.yamlの中のpartitionerの設定を変更する。 デフォルトでは、org.apache.cassandra.dht.RandomPartitioner となっているが、org.apache.cassandra.dht.OrderPreservingPartitioner に変更する。
~
[Taniwiki]