CassandraはTwitterでも採用されたとか。でも今は採用されてないって言う。。。*1 *2
でも将来性に期待のできる列指向のKVSですね。
覚え書き。使用したCassandraのバージョンは0.7.5。Ubuntu11.04で動かしました。
まずCassandraのあるディレクトリまでcdする。
システム要件としてOpenJDKかSunのJava6が必須です。
cassandraサーバーを起動する前の準備
試すだけなら特に設定ファイルをいじる必要はないので、cassandra用のlog, libディレクトリを作成します。whoamiにはcassandraを起動するユーザを指定する。
$ sudo mkdir -p /var/log/cassandra $ sudo chown -R `whoami` /var/log/cassandra $ sudo mkdir -p /var/lib/cassandra $ sudo chown -R `whoami` /var/lib/cassandra
これらの格納ディレクトリ等の設定を変更したい場合は最低でもconf/以下のファイルを編集しなければならない。
- cassandra.yaml: cassandraのメイン設定ファイル
- log4j-server.proprties: cassandraサーバーのロギング設定ファイル
他のファイルはスケールアウトや認証関係の設定ファイルになっている(らしい)。
cassandraサーバーを起動する
$ bin/cassandra [-f]
-fオプションを付けるとフォアグラウンドでcassandraサーバーが起動します。デフォルトはバックグラウンドで起動されます。デフォルト起動ポートは9160番です。
cassandraサーバーに接続する
$ bin/cassandra-cli --host localhost Connected to: "Test Cluster" on localhost/9160 Welcome to cassandra CLI. Type 'help;' or '?' for help. Type 'quit;' or 'exit;' to quit. /* Test Cluster上にKeyspace1を作成する(RDBMSのデータベースに相当する) */ [default@unknown] create keyspace Keyspace1; /* 使用するキースペースを指定する */ [default@unknown] use Keyspace1; /* カラムファミリを定義する(RDBMSのテーブルに相当する) */ [default@Keyspace1] create column family Users with comparator=UTF8Type and default_validation_class=UTF8Type; 737c7a71-dc56-11df-8240-e700f669bcfc /* * カラムファミリに対してキーと値のカラム値ペアをセットしていく * ここではjsmithがキーになっている */ [default@KS1] set Users[jsmith][first] = 'John'; Value inserted. [default@KS1] set Users[jsmith][last] = 'Smith'; Value inserted. [default@KS1] set Users[jsmith][age] = long(42); Value inserted. /* キーを指定してカラム値を取得する */ [default@KS1] get Users[jsmith]; => (column=last, value=Smith, timestamp=1287604215498000) => (column=first, value=John, timestamp=1287604214111000) => (column=age, value=42, timestamp=1287604216661000) Returned 3 results. /* カラムファミリ、あるいはキースペースの削除 */ [default@twissandra] drop column family users; ade3bc44-236f-11e0-8410-56547f39a44b [default@twissandra] drop keyspace twissandra; 30448a50-28d8-11e0-9c0d-e700f669bcfc /* コマンドラインを終了する */ [default@KS1] quit;
キーバリューをセットするとタイムスタンプも一緒に記録されます。これはスケールアウトした際のキーのコンフリクトを解決するために使用されるみたい。私の読解に間違いがなければ。
事前に定義したスキーマファイルをクラスタに適用する
「えっ、もしかしてコマンドラインからじゃないとスキーマ定義できないの?大変そう」と思った方、conf/schema-sample.txtにスキーマ定義のサンプルが置いてあります。まだ私は理解出来ていないのですが、以下のようにすることで指定したクラスタにスキーマ定義を適用することができるようです。
$ bin/cassandra-cli --host localhost --file conf/schema.txt
まだちょっと触り始めたばかりなのでもっと調べて知識を深めたいと思います。英語ばっかりなのが辛いところ。
参考
投稿者紹介
-
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。
最近のエントリ
- レポート2019.10.28ユニキャストレストランを開催しました🍳
- レポート2019.08.29社内研修ワークショップ~マシュマロ・チャレンジ~
- レポート2019.08.06Computex/InnoVEX 出展者・通訳として参加してきました。
- レポート2018.06.12Computex 2018 レポート
1件のコメント