ホーム > データベース > NoSQL Cassandraを使ってみる ~インストール編~

NoSQL Cassandraを使ってみる ~インストール編~



Cassandra入門と、さらに詳しく知るためのリソース集 ? Publickey
こんな記事が上がっていて、Cassandraにも興味が出てきたので触ってみた。

Cassandraって?

Cassandraは最近流行りのNoSQLの一つ。Facebookで大規模データ処理のために開発されて、現在はオープンソースとなって、Apache Software Foundationのプロジェクトとして開発が進んでいる。イマイチ理解はしきれていないが、多次元のデータが保持できるKey-Valueストアという認識をしている。ちなみに、SQLの用語と比較すると
データベース → キースペース
テーブル   → カラムファミリー
主キー    → key
カラム    → カラム
と対応づけられるようである。参考:みてわかるクラウドマガジンvol.1 (日経BPパソコンベストムック)



インストール

CassandraはJavaで実装されているのでプラットフォームには非依存。(Ver.は1.6以上が推奨)
今回はFedora12 x86_64にインストールしてみた。

$ which java
/usr/bin/java
$ java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8) (fedora-39.b18.fc12-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
$ su
$ cd /usr/local/src
$ wget "http://www.meisei-u.ac.jp/mirror/apache/dist/cassandra/0.6.2/apache-cassandra-0.6.2-bin.tar.gz"
$ tar -zxvf apache-cassandra-0.6.2-bin.tar.gz

バイナリで配布されているので解凍したら特にコンパイルする必要もない。

実行

早速、実行してみる。


$ cd apache-cassandra-0.6.2
$ ./bin/cassandra -f

メッセージがいくつか表示されて起動した。クライアントも容易されているので接続してみる。デフォルトではKeyspace1というキースペースとその中に4つのカラムファミリーがあり、外部から接続するポートは9160に設定されている。ちなみにこれらの設定は、conf/storage-conf.xmlに記述されている。

$ /usr/local/src/cassandra/bin/cassandra-cli --host localhost --port 9160
Connected to: "Test Cluster" on localhost/9160
Welcome to cassandra CLI.
Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.
cassandra> set Keyspace1.Standard1['jsmith']['first'] = 'John'
Value inserted.
cassandra> set Keyspace1.Standard1['jsmith']['last'] = 'Smith'
Value inserted.
cassandra> set Keyspace1.Standard1['jsmith']['age'] = '42'
Value inserted.
cassandra> get Keyspace1.Standard1['jsmith']
=> (column=6c617374, value=Smith, timestamp=1280391013700000)
=> (column=6669727374, value=John, timestamp=1280390971929000)
=> (column=616765, value=42, timestamp=1280391004923000)
Returned 3 results.

setでデータを保存し、getでデータを取得することに成功。せっかくなのでこれでちょっとしたアプリケーションを作ってみたいと思っている。

参考サイト

アグレッシブエンジニア: cassandraに挑戦 その2 インストール


関連エントリー

カテゴリー: データベース タグ: ,

Comments links could be nofollow free.