Cassandraのはじめ方─手を動かしてNoSQLを体感しよう

第2回 Cassandraのインストールから起動まで

この記事を読むのに必要な時間:およそ 4 分

前回はCassandraとは何かを簡単に説明しました。第2回では,Cassandraを実際にインストールして開発環境で動かしてみましょう。

Cassandraをインストールしよう

環境を確認する

まずは環境の確認をしましょう。筆者の環境は以下のようになっています。

  • Windows 7 Professional
  • Sun JDK 1.6.0_18 64bit
  • Eclipse 3.5.1

この連載ではおもにWindowsでの環境を想定しています。ただ,CassandraはJavaベースなので,MacやLinuxなど別OSでも同様に動くはずです。

Cassandraをダウンロードする

本連載では現時点での最新版Cassandraha 0.6.1を使います。以下のサイトからダウンロードできます。

The Apache Cassandra Project
URL:http://cassandra.apache.org/download/

上記ページから,apache-cassandra-0.6.1-bin.tar.gzをダウンロード・解凍してください。そして,適切なフォルダに展開してください。筆者は

C:¥cassandra¥apache-cassandra-0.6.1

に展開しました。

Cassandraのディレクトリ構造

Cassandraを展開すると以下のようなディレクトリ構造になっています。

図1 Cassandraのディレクトリ構造

図1 Cassandraのディレクトリ構造

今回は,この中のbinとconfの下をおもに見ていきます。

JAVA_HOMEを設定する

Cassandraだけに限った話ではありませんが,JAVA_HOMEを正しく設定しておいてください。筆者は以下のようになっています。

C:¥>echo %JAVA_HOME%
C:¥personal¥application¥jdk¥jdk1.6.0_18

CASSANDRA_HOMEを設定する

Cassandraを動かすためには,表1にある項目を設定する必要があります。

表1 Cassandraの基本設定項目

項目名説明デフォルト値
CASSANDRA_HOMECassandraのインストール場所現在のディレクトリ
CASSANDRA_CONFCassandraの設定ファイルの配置場所%CASSANDRA_HOME%¥conf
CASSANDRA_MAINCassandraの起動に使うコードorg.apache.cassandra.
thrift.CassandraDaemon

その他の設定項目はデフォルト値があるのでこのままでも動きます。しかし余計な間違いを避けるために,CASSANDRA_HOMEは設定しておきましょう。

Windowsでは図2のように設定します。

図2 CASSANDRA_HOMEの設定例

図12 CASSANDRA_HOMEの設定例

データとコミットログの出力先を設定する

次に,実際にCassandraを動かした際のデータとコミットログの出力先を設定します。データやコミットログを含む仕組みについては後ほどご説明します。

データとコミットログの出力先は,Cassandraの設定ファイルであるstorage-conf.xmlで設定します。なお,圧縮ファイルを展開しただけだと,すべての設定ファイルがリードオンリーになっているので,別途解除してください。

Cassandraの設定ファイルは,デフォルトでは以下に置くことになっています。

%CASSANDRA_HOME%¥conf

storage-conf.xmlにはいろいろ記述されていますが,今回修正するのは2点だけです。

具体的には

  <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.xmlについては今後詳細にご説明する予定ですが,開発用に起動するだけならstorage-conf.xmlの設定はこれだけです。

システムのログ出力先を変更する

次にシステムのログ出力先を変更します。

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つのポートを使います(表2を参照)⁠

表2 Cassandraの使用するポート

項目名ポート番号
ThriftでのRPCポート9160
JMXでの接続ポート8080
複数Cassandraノードのコミュニケーションポート7000

このうち,次の2つはクライアント側とのコミュニケーションに使用します。

  • クライアントからの処理要求を受け付けるポート(9160番,表2の①)
  • Cassandraノードの内部情報を取得するために接続するJMXのポート(8080,表2の②)

どのポートも固定なわけではなく,設定や起動ファイルの修正で変更可能です。

batファイルを修正する

最後に起動batファイルを少し修正します。

Cassandraにはcassandra.batファイルが最初からついているので,これでCassandraを起動できます。しかし,CassandraのbatファイルはJMXを8080ポートで指定しているため,Tomcatなどのデフォルトポートとかぶってしまいます。そのため,これを適切なポートに変えておきます。

変更するのはcassandra.batの以下の部分です。筆者は9081にしました。

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

著者プロフィール

大谷晋平(おおたにしんぺい)

オープンソースプログラマ。WebフレームワークT2の開発をしながらHadoop/NoSQLミドルウェアにも手を出す。最近ではもっぱらHadoop,Cassandra,Avro,kumofsなどに興味津々。

blog:http://d.hatena.ne.jp/shot6/

Twitter:http://twitter.com/shot6/

コメント

コメントの記入