intra-mart Accel Platform Cassandra管理者ガイド 第17版 2023-10-01

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 主な項目一覧」を参照してください。
  1. クラスタ名の指定

    「cluster_name」 プロパティに任意のクラスタの名称を指定します。
    cluster_name: 'IMBox Cluster'
    

    注意

    Cassandraサーバが複数存在する場合、クラスタ名で同一クラスタのCassandraであるか判断され、クラスタが組まれてしまう場合があります。
    新規に intra-mart Accel Platform を構築する場合、初期値を変更することを推奨します。
  2. データの保存場所の指定

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

    「commitlog_directory」プロパティに任意のパスを指定します。
    指定したディレクトリが無い場合、起動時に自動で作成されます。
    # commit log
    commitlog_directory: %CASSANDRA_HOME%/commit_log
    
  4. キャッシュデータの保存場所の指定

    「saved_caches_directory」プロパティに任意のパスを指定します。
    指定したディレクトリが無い場合、起動時に自動で作成されます。
    # saved caches
    saved_caches_directory: %CASSANDRA_HOME%/saved_caches
    

    コラム

    Cassandraをバージョンアップする際には、旧バージョンのデータを新バージョンのデータとして引き継いで利用します。
    バージョンアップについての詳細は、Cassandra のバージョンアップ を参照してください。
  5. 他の Cassandra との通信用アドレスの指定

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

    <%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-UNNAMED
3 箇所目
  • 変更前
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 finally
4 箇所目
  • 変更前
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 をインストールしたホームディレクトリ

コラム