4.2. Cassandraのセットアップ for Windows¶
ここでは Windows環境へのCassandraのセットアップ方法を説明します。
4.2.1. ファイルの展開¶
「Apache Cassandra の取得」でダウンロードした、<apache-cassandra-1.1.12-bin.tar.gz>ファイルを任意のパスに展開します。※ファイルの展開には、TAR-GZ形式の圧縮ファイルが展開できる解凍ツールを利用してください。コラム
本書では、例として次のディレクトリを指定します。
「C:/cassandra/apache-cassandra-1.1.12」
Cassandraを展開したディレクトリを以後、%CASSANDRA_HOME% と略します。
4.2.2. 各種設定¶
- Cassandraを起動する前に、以下の設定が必要です。
4.2.2.1. Cassandraの設定¶
- Cassandraの設定が記載されている、<%CASSANDRA_HOME%/conf/cassandra.yaml>ファイルをエディタで開き、編集を行います。
- <cassandra.yaml>ファイルに関する詳細は、「Cassandra の参考情報」-「cassandra.yaml 主な項目一覧」を参照してください。
クラスタ名の指定
「cluster_name」 プロパティに任意のクラスタの名称を指定します。cluster_name: 'IMBox Cluster'注意
Cassandraサーバが複数存在する場合、クラスタ名で同一クラスタのCassandraであるか判断され、クラスタが組まれてしまう場合があります。新規に intra-mart Accel Platform を構築する場合、初期値を変更することを推奨します。データの保存場所の指定
「data_file_directories」プロパティに任意のパスを指定します。指定したディレクトリが無い場合、起動時に自動で作成されます。data_file_directories: - C:/cassandra/dataコミットログの保存場所の指定
「commitlog_directory」プロパティに任意のパスを指定します。指定したディレクトリが無い場合、起動時に自動で作成されます。# commit log commitlog_directory: %CASSANDRA_HOME%/commit_logキャッシュデータの保存場所の指定
「saved_caches_directory」プロパティに任意のパスを指定します。指定したディレクトリが無い場合、起動時に自動で作成されます。# saved caches saved_caches_directory: %CASSANDRA_HOME%/saved_cachesコラム
Cassandraをバージョンアップする際には、旧バージョンのデータを新バージョンのデータとして引き継いで利用します。バージョンアップについての詳細は、Cassandra のバージョンアップ を参照してください。他の Cassandra との通信用アドレスの指定
Cassandraでは、JavaのInetAddress.getLocalHost()で取得されたIPアドレスで他のCassandraとの通信を受け付けますが、複数のアドレスがある場合、明示的に通信に利用するIPアドレスを指定する必要があります。listen_address: 192.168.xxx.xxx(任意のIPアドレス) rpc_address: 192.168.xxx.xxx(任意のIPアドレス)システムログの指定
<%CASSANDRA_HOME%/conf/log4j-server.properties>ファイルをエディタで開き、「log4j.appender.R.File」プロパティに任意のパスを指定します。log4j.appender.R.File=%CASSANDRA_HOME%/system.logコラム
Java 17 で運用を行う場合、<%CASSANDRA_HOME%/bin/cassandra.bat>ファイルをエディタで開き、下記 4 箇所の設定を変更してください。1 箇所目
- 変更前
set JAVA_OPTS=-ea^ -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.2.5.jar"^ -Xms1G^ -Xmx1G^ -XX:+HeapDumpOnOutOfMemoryError^ -XX:+UseConcMarkSweepGC^ -XX:+CMSParallelRemarkEnabled^ -XX:SurvivorRatio=8^ -XX:MaxTenuringThreshold=1^ -XX:CMSInitiatingOccupancyFraction=75^ -XX:+UseCMSInitiatingOccupancyOnly^ -Dcom.sun.management.jmxremote.port=7199^ -Dcom.sun.management.jmxremote.ssl=false^ -Dcom.sun.management.jmxremote.authenticate=false^ -Dlog4j.configuration=log4j-server.properties^ -Dlog4j.defaultInitOverride=true
- 変更後
set JAVA_OPTS=-ea^ -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.2.5.jar"^ -Xms1G^ -Xmx1G^ -XX:+HeapDumpOnOutOfMemoryError^ -XX:+UseG1GC^ -XX:MaxGCPauseMillis=200^ -XX:InitiatingHeapOccupancyPercent=30^ -Dcom.sun.management.jmxremote.port=7199^ -Dcom.sun.management.jmxremote.ssl=false^ -Dcom.sun.management.jmxremote.authenticate=false^ -Dlog4j.configuration=log4j-server.properties^ -Dlog4j.defaultInitOverride=true REM -XX:+UseConcMarkSweepGC^ REM -XX:+CMSParallelRemarkEnabled^ REM -XX:SurvivorRatio=8^ REM -XX:MaxTenuringThreshold=1^ REM -XX:CMSInitiatingOccupancyFraction=75^ REM -XX:+UseCMSInitiatingOccupancyOnly^2 箇所目
- 変更前
REM ***** JAVA9 letter options (--add-modules/--add-exports and other) ***** set JAVA_OPTS9=--add-exports java.base/jdk.internal.ref=ALL-UNNAMED
- 変更後
REM ***** JAVA9 letter options (--add-modules/--add-exports and other) ***** REM set JAVA_OPTS9=--add-exports java.base/jdk.internal.ref=ALL-UNNAMED REM ***** JAVA17 letter options (--add-modules/--add-exports and other) ***** set JAVA_OPTS17=--add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED3 箇所目
- 変更前
echo Starting Cassandra Server "%JAVA_HOME%\bin\java" %JAVA_OPTS% %JAVA_OPTS9% %CASSANDRA_PARAMS% -cp %CASSANDRA_CLASSPATH% "%CASSANDRA_MAIN%" goto finally
- 変更後
echo Starting Cassandra Server REM "%JAVA_HOME%\bin\java" %JAVA_OPTS% %JAVA_OPTS9% %CASSANDRA_PARAMS% -cp %CASSANDRA_CLASSPATH% "%CASSANDRA_MAIN%" "%JAVA_HOME%\bin\java" %JAVA_OPTS% %JAVA_OPTS17% %CASSANDRA_PARAMS% -cp %CASSANDRA_CLASSPATH% "%CASSANDRA_MAIN%" goto finally4 箇所目
- 変更前
REM convert ' --' into ';--' so we can tokenize on semicolon as we may have spaces in folder names set JAVA_OPTS_DELM9=%JAVA_OPTS9: --=;--%
- 変更後
REM convert ' --' into ';--' so we can tokenize on semicolon as we may have spaces in folder names REM set JAVA_OPTS_DELM9=%JAVA_OPTS9: --=;--% set JAVA_OPTS_DELM9=%JAVA_OPTS17: --=;--%
4.2.2.2. メモリの設定¶
インストール環境に応じたメモリ値を指定します。<%CASSANDRA_HOME%/bin/cassandra.bat>ファイルをエディタで開きます。「Xms」プロパティに最小ヒープサイズ、「Xmx」プロパティに最大ヒープサイズを指定します。指定する値は、必ず下記の記載例以上にしてください。set JAVA_OPTS=-ea^ -javaagent:”%CASSANDRA_HOME%lib\jamm-0.2.5.jar”^ -Xms512M^ -Xmx512M^注意
設定する値は「512M」以上にしてください。「512M」より小さい値を設定した場合、正常に動作しない恐れがあります。Cassandraとしては1GB以上に設定することを推奨されています。
4.2.2.3. 環境変数の設定¶
Windows環境変数に JDKをインストールしたホームディレクトリを追加します。WindowsOSのマニュアルに従い、次のように設定します。
変数 JAVA_HOME 値 JDK をインストールしたホームディレクトリ コラム
事前にJDKがインストールされている必要があります。JDKのバージョンは「 リリースノート 」-「 Apache Cassandra システム要件 」に準拠します。