前回はCassandraとは何かを簡単に説明しました。第2回では、
Cassandraをインストールしよう
環境を確認する
まずは環境の確認をしましょう。筆者の環境は以下のようになっています。
- Windows 7 Professional
- Sun JDK 1.
6.0_ 18 64bit - Eclipse 3.
5.1
この連載ではおもにWindowsでの環境を想定しています。ただ、
Cassandraをダウンロードする
本連載では現時点での最新版Cassandraha 0.
- The Apache Cassandra Project
- URL:http://
cassandra. apache. org/ download/
上記ページから、
C:¥cassandra¥apache-cassandra-0.6.1
に展開しました。
Cassandraのディレクトリ構造
Cassandraを展開すると以下のようなディレクトリ構造になっています。

今回は、
JAVA_HOMEを設定する
Cassandraだけに限った話ではありませんが、
C:¥>echo %JAVA_HOME% C:¥personal¥application¥jdk¥jdk1.6.0_18
CASSANDRA_HOMEを設定する
Cassandraを動かすためには、
項目名 | 説明 | デフォルト値 |
---|---|---|
CASSANDRA_ | Cassandraのインストール場所 | 現在のディレクトリ |
CASSANDRA_ | Cassandraの設定ファイルの配置場所 | %CASSANDRA_ |
CASSANDRA_ | Cassandraの起動に使うコード | org. thrift. |
その他の設定項目はデフォルト値があるのでこのままでも動きます。しかし余計な間違いを避けるために、
Windowsでは図2のように設定します。

データとコミットログの出力先を設定する
次に、
データとコミットログの出力先は、
Cassandraの設定ファイルは、
%CASSANDRA_HOME%¥conf
storage-conf.
具体的には
<CommitLogDirectory>/var/lib/cassandra/commitlog</CommitLogDirectory>
<DataFileDirectories>
<DataFileDirectory>/var/lib/cassandra/data</DataFileDirectory>
</DataFileDirectories>
の部分を、
<CommitLogDirectory>C:¥cassandra¥commitlog</CommitLogDirectory>
<DataFileDirectories>
<DataFileDirectory>C:¥cassandra¥data</DataFileDirectory>
</DataFileDirectories>
storage-conf.
システムのログ出力先を変更する
次にシステムのログ出力先を変更します。
Cassandraはlog4jを使っているので、
%CASSANDRA_HOME%¥conf¥log4j.properties
変更するのはログの出力先だけなので、
# Edit the next line to point to your logs directory
log4j.appender.R.File=C:¥¥cassandra¥¥log¥¥system.log
Cassandraは全部で3つのポートを使います
項目名 | ポート番号 | |
---|---|---|
① | ThriftでのRPCポート | 9160 |
② | JMXでの接続ポート | 8080 |
③ | 複数Cassandraノードのコミュニケーションポート | 7000 |
このうち、
- クライアントからの処理要求を受け付けるポート
(9160番、 表2の①) - Cassandraノードの内部情報を取得するために接続するJMXのポート
(8080、 表2の②)
どのポートも固定なわけではなく、
batファイルを修正する
最後に起動batファイルを少し修正します。
Cassandraにはcassandra.
変更するのはcassandra.
set JAVA_OPTS=^
-ea^
-Xdebug^
-Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n^
-Xms128m^
-Xmx1G^
-XX:TargetSurvivorRatio=90^
-XX:+AggressiveOpts^
-XX:+UseParNewGC^
-XX:+UseConcMarkSweepGC^
-XX:+CMSParallelRemarkEnabled^
-XX:+HeapDumpOnOutOfMemoryError^
-XX:SurvivorRatio=128^
-XX:MaxTenuringThreshold=0^
-Dcom.sun.management.jmxremote.port=8080^
-Dcom.sun.management.jmxremote.ssl=false^
-Dcom.sun.management.jmxremote.authenticate=false
Cassandraを起動して使ってみよう
では、
%CASSANDRA_
以下のような感じの起動ログが出るはずです。
C:¥cassandra¥apache-cassandra-0.6.1>bin¥cassandra.bat Starting Cassandra Server Listening for transport dt_socket at address: 8888 INFO 16:12:38,171 Auto DiskAccessMode determined to be standard INFO 16:12:38,625 Saved Token not found. Using 12130970972828844347523289220179262978 INFO 16:12:38,625 Saved ClusterName not found. Using Test Cluster INFO 16:12:38,656 Creating new commitlog segment C:¥cassandra¥commitlog¥CommitLog-1271747558656.log INFO 16:12:38,812 Starting up server gossip INFO 16:12:39,000 Binding thrift service to localhost/127.0.0.1:9160 INFO 16:12:39,015 Cassandra starting up...
Cassandraにはコマンドラインツールがついているので、
C:¥cassandra¥apache-cassandra-0.6.1>bin¥cassandra-cli.bat
Starting Cassandra Client
Welcome to cassandra CLI.
Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.
cassandra>
まずは先ほど起動したCassandraサーバに接続しなくてはいけないのでconnectコマンドを打ちます。
cassandra> connect localhost/9160 Connected to: "Test Cluster" on localhost/9160
とりあえずCassandraのデフォルトで用意されているキースペース
cassandra> describe keyspace Keyspace1 Keyspace1.Super1 Column Family Type: Super Columns Sorted By: org.apache.cassandra.db.marshal.BytesType@66e8c7db Column Family Type: Super Column Sorted By: org.apache.cassandra.db.marshal.BytesType flush period: null minutes (以下省略)
各キースペースに定義されたデータ構造の情報が取れます。
では簡単なデータをCassandraに入れて、
set キースペース.カラムファミリ名[キー名][カラム名]=値
データを取り出すときは、
get キースペース.カラムファミリ名[キー名]
この例では
cassandra> set Keyspace1.Standard2['shot']['firstname']='Shinpei' Value inserted. cassandra> set Keyspace1.Standard2['shot']['lastname']='OHTANI' Value inserted. cassandra> set Keyspace1.Standard2['shot']['twitter']='http://twitter.com/shot6' Value inserted. cassandra> get Keyspace1.Standard2['shot'] => (column=twitter, value=http://twitter.com/shot6, timestamp=1271173345860000) => (column=lastname, value=OHTANI, timestamp=1271173320777000) => (column=firstname, value=Shinpei, timestamp=1271173297104000) Returned 3 results.
Cassandraを終了する
最後はCassandraを終了させましょう。
CassandraをWindows上から終了するには、Cassandraが動いているコンソールでCtrl+Cを押して停止させます。
ここまででCassandraを動かすところまできました。次回はCassandraのデータモデルについてご説明します。お楽しみに。