NoSQL Cassandraを使ってみる ~インストール編~
->
Cassandra入門と、さらに詳しく知るためのリソース集 ? Publickey
こんな記事が上がっていて、Cassandraにも興味が出てきたので触ってみた。
今回はFedora12 x86_64にインストールしてみた。
バイナリで配布されているので解凍したら特にコンパイルする必要もない。
メッセージがいくつか表示されて起動した。クライアントも容易されているので接続してみる。デフォルトではKeyspace1というキースペースとその中に4つのカラムファミリーがあり、外部から接続するポートは9160に設定されている。ちなみにこれらの設定は、conf/storage-conf.xmlに記述されている。
setでデータを保存し、getでデータを取得することに成功。せっかくなのでこれでちょっとしたアプリケーションを作ってみたいと思っている。
こんな記事が上がっていて、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でデータを取得することに成功。せっかくなのでこれでちょっとしたアプリケーションを作ってみたいと思っている。
