Cassandraの利用方法

提供: LunaBiblos

Software > DataBase > KeyValueストア > Cassandraの利用方法

目次

Server Consoleからの利用

Cassandraが動作するServer上で下記のCommandを実行します。なお末尾で利用するポート番号は設定ファイルで指定した番号です。
下記Commandを実行するとOracleで言うSQL PLUS、HBaseで言うHBase Shellに相当する画面が開きます。またCassandra Cluster環境下では、そのClusterに参加しているNodeのホスト名かIPであれば同一空間のDatabaseに接続する事が出来ます。
設定ファイルに関してはCassandraの設定を参照してください。

sudo cassandra-cli -host ${接続先ホスト名orIP} -port 9160

外部Programからの利用

Server側設定

thriftを利用してCassandraに接続出来る様に設定を施します。

接続Clientの準備

今回はJavaで接続する方法の解説です。JavaからCassandraに接続する場合はThriftを利用します。以下に挙げるのがJavaからCassandraに接続する際に必要となるJARファイルです。
XXXは各ファイルのVerに相当する数字部分です。

apache-cassandra-incubating-XXX.jar
libthrift-rXXX.jar
slf4j-api-XXX.jar
slf4j-log4j12-XXX.jar

Cluster管理

全TableData再割り当てnodetool -h localhost loadbalance
サーバ監視nodetool -h localhost tpstats
nodetool -h localhost cfstats
Memtable上DataをDiskへ強制書き出しnodetool -h localhost flush
Snapshotの取得nodetool -h localhost snapshot snapshotname
Snapshotの削除nodetool -h localhost clearsnapshot

DataのBackupとRestore

Cassandraは以下のCommandを利用する事でDataのExportとImportを行う事が出来ます。

sstable2json [-f outfile] <sstable> [-k key [-k key [...]]]
json2sstable -K keyspace -c column_family <json> <sstable>

SampleCode

NodeTool Command

関係Class

Command解説

ring現在のClusterのRing(各Nodeが担当するTokenの一覧)を表示する
info現在のClusterの状況を表示
cleanup余剰となっているReplicationDataを削除する
compactCompactionを走らせる
cfstats各ColumnFamily毎の詳細な状況を表示する
snapshot <SnapShot名>${DataFileDirectory}/<KeySpace>/snapshot/XXXXX-<SnapShot名> に実行時のSnapShotを作る
clearsnapshot上記DirectoryにあるSnapShotのDataを削除します
tpstatsClusterの負荷状況を表示する
flush <KeySpace>まだDisk上に保存されていないDataを強制的に保存する
(MemtableをSSTableとしてDsikに出力する)
drain <KeySpace>CommitLogの有無を確認し、ある場合はMemtableを作成し更にFlushを行いSSTableを作成する
repair <KeySpace>Cluster中にある全ReplicaDataを取得、比較し、最新版でない物があれば最新に書き換えます。
decommission現在稼働しているNodeをClusterから取り除き、かつringも更新する
move既存のNodeを、一度ring上から取り除き、新規Nodeとして追加する
loadbalanceRing上にある各Nodeが持つData量を調べ、それらが均等に成るように各Nodeの担当する範囲を変更する
removetoken現在停止しているNodeをClusterから取り除き、かつringも更新する
setcachecapacity <keyspace> <cfname> <keycachecapacity> <rowcachecapacity>Memory上にCacheするData量を変更します
getcompactionthresholdCompactionを実行する閾値を表示します
setcompactionthreshold [minthreshold] ([maxthreshold])streams [host]Compactionを実行する閾値を接石ます

参照

大項目
案内
ツールボックス