intra-mart Accel Platform / Cassandra管理者ガイド

«  Windowsサービスへの登録・削除   ::   コンテンツ   ::   Linuxデーモンへの登録、削除  »

Linux環境への Cassandra のインストール

ここでは Linux環境への Cassandra のインストール方法を説明します。

ファイルの展開

Apache Cassandra の取得 でダウンロードした、<apache-cassandra-1.1.4-bin.tar.gz>ファイルを任意のパスに展開します。

コラム

本書では、例として次のディレクトリを指定します。

「/usr/local/cassandra」

コラム

/usr/local/apache-cassandra-1.1.4として展開されたものを
/usr/local/cassandraにシンボリックリンクしておくと、VerUP等、容易になります。
# ln -s /usr/local/apache-cassandra-1.1.4 /usr/local/cassandra

各種設定

ファイルディスクリプタ数の変更

OSの設定により、運用中にIOException, FileNotFoundException 等が発生し、 Cassandra が正常に動作しなくなる場合があります。
原因は、 Cassandra のプロセスが利用(オープン)できるファイル数の上限がOSにより制限されている上限を超える為に発生します。
つまり、/etc/system/limits.conf または/etc/security/limits.confで設定されるOSのファイルディスクリプタ数を環境に合わせた
以下の数を追加することにより、回避することができますので、適切な値に変更してください。
* soft nofile 32768
* hard nofile 32768
root soft nofile 32768
root hard nofile 32768

※ ユーザ及び値はサンプルです、環境に合わせて適切な値を設定してください。

コラム

ファイルディスクリプタの現在の設定値は、

ulimit -n

で確認できます。

メモリの設定

Linux環境の場合、</usr/local/cassandra/conf/cassandra-env.sh>により起動時に
「Xmx」:最大ヒープサイズは、
  • 搭載メモリ量が、2048MB以下の場合、搭載メモリの半分
  • 搭載メモリ量が、2049MB以上、4099MB以下の場合、1024MB
  • 搭載メモリ量が、4100MB以上、32768MB以下の場合、搭載メモリ量の1/4
  • 搭載メモリ量が、32769MB以上の場合、搭載メモリ量の8196MB
に自動設定されます。
任意に設定したい場合は、 </usr/local/cassandra/conf/cassandra-env.sh>の
#MAX_HEAP_SIZE="4G"

のコメントアウトを外し、任意の値を設定してください。

注意

設定する値は「512M」以上にしてください。
「512M」より小さい値を設定した場合、正常に動作しない恐れがあります。
Cassandraとしては1GB以上に設定することを推奨されています。

環境変数に JDKをインストールしたホームディレクトリを追加します。

Cassandra を実行するユーザの環境変数に、次のように設定します。

変数 JAVA_HOME
JDK をインストールしたホームディレクトリ

Cassandra の設定

</usr/local/cassandra/conf/cassandra.yaml>ファイルをエディタで開きます。

クラスター名の指定

  • Cassandraのクラスター名を指定します。
「cluster_name」 プロパティに任意のクラスタの名称を指定します。
cluster_name: 'IMBox Cluster'
IM-Juggling にて、conf/cassandra-conig.xmlを開き、<cluster-name>を上記で指定したクラスタ名に変更してWARファイルを作成してください。
../../_images/cluster-name.png

データの保存場所の指定

  • データの保存場所を指定します。
「data_file_directories」プロパティに任意のパスを指定します。
指定したディレクトリが無い場合、起動時に自動で作成されます。
data_file_directories:
   - /var/lib/cassandra/data

CommitLogの保存場所の指定

  • コミットログの保存場所を指定します。
「commitlog_directory」プロパティに任意のパスを指定します。
指定したディレクトリが無い場合、起動時に自動で作成されます。
# commit log
commitlog_directory: /var/lib/cassandra/commit_log

キャッシュデータの保存場所の指定

  • キャッシュデータの保存場所を指定します。
「saved_caches_directory」プロパティに任意のパスを指定します。
指定したディレクトリが無い場合、起動時に自動で作成されます。
# saved caches
saved_caches_directory: /var/lib/cassandra/saved_caches

他の Cassandra との通信用アドレスの指定

  • 他の Cassandra との通信用アドレスの指定します。
Cassandraでは、JavaのInetAddress.getLocalHost()で取得されたIPアドレスで、
他のCassandraとの通信を受け付けますが、複数のアドレスがある場合、
明示的に通信に利用するIPアドレスを指定する必要があります。
listen_address: 192.168.xxx.xxx(任意のIPアドレス)

rpc_address: 192.168.xxx.xxx(任意のIPアドレス)

1台のみで運用する場合は、127.0.0.1(localhost)のままで問題ありません。

システムログの指定

</usr/local/cassandra/conf/log4j-server.properties>ファイルをエディタで開きます。

  • システムログの保存場所を指定します。

「log4j.appender.R.File」プロパティに任意のパスを指定します。

log4j.appender.R.File=/var/log/cassandra/system.log

«  Windowsサービスへの登録・削除   ::   コンテンツ   ::   Linuxデーモンへの登録、削除  »