複数ノード・クラスター(複数データ・センター)の初期化

複数のデータ・センターを持つCassandraクラスターのデプロイ・シナリオ。

このトピックでは、複数のデータ・センターを持つCassandraクラスターのデプロイについて説明します。 Cassandraを使用するのが初めてで、クラスターをセットアップしていない場合は、『DataStaxドキュメント』または『10 Minute Cassandra Walkthrough』を参照してください。

この例では、2つのデータ・センターにまたがる6つのノードで構成されるクラスターをインストールする方法を説明しています。各ノードは、GossipingPropertyFileSnitch(複数のラックを認識)および256個の仮想ノード(vnode)を使用するように構成されています。

Cassandraにおける「データ・センター」という用語は、ノードのグループという意味です。データ・センターは、レプリケーション・グループと同じ意味です。つまり、レプリケーションを目的に一緒に構成されたノードのグループのことです。

始める前に

クラスターを起動する前に各ノードを正しく構成する必要があります。クラスターを起動する前に以下の項目を決定または実行する必要があります。

手順

  1. これらのノードにCassandraをインストールするとします。
    node0 10.168.66.41 (seed1) node1 10.176.43.66 node2 10.168.247.41 node3 10.176.170.59 (seed2) node4 10.169.61.170 node5 10.169.30.138
    注: ベスト・プラクティスは、データ・センターあたり複数のシード・ノードを持つことです。
  2. クラスターでファイアウォールを使用している場合は、ノード間の通信のために特定のポートを開く必要があります。「ファイアウォール・ポート・アクセスの構成」を参照してください。
  3. Cassandraが動作している場合は、サーバーを停止して、データを消去する必要があります。

    これにより、デフォルトのcluster_name(Test Cluster)がシステム・テーブルから削除されます。すべてのノードに同じクラスター名を使用してください。

    パッケージ・インストール:

    1. Cassandraの停止:
      sudo service cassandra stop
    2. データの消去:
      sudo rm -rf /var/lib/cassandra/data/system/*

    tarボール・インストール:

    1. Cassandraの停止:
      ps auwx | grep cassandra
      $ sudo  kill pid
    2. データの消去:
      $ sudo rm -rf /var/lib/cassandra/data/system/*
  4. 各ノードについてcassandra.yamlファイル内のプロパティを設定します。
    注: cassandra.yamlファイルを変更したら、ノードを再起動して変更を有効にする必要があります。
    設定するプロパティ:
    • num_tokens: 推奨値: 256
    • -seeds: 各シード・ノードの内部IPアドレス

      シード・ノードは、新しいノードが既存のクラスターに参加するプロセスであるブートストラップを行いません。新しいクラスターでは、シード・ノードでのブートストラップ・プロセスは省略されます。

    • listen_address:

      設定されていないと、Cassandraは、そのホスト名に関連付けられているローカル・アドレスをシステムに照会します。正しいアドレスが生成されていない場合は、listen_addressを指定する必要があります。

    • endpoint_snitch: スニッチ名endpoint_snitchを参照。)スニッチを変更する場合は、「スニッチの切り替え」を参照してください。
    • auto_bootstrap:false(この設定は、データなしで新しいクラスターを初期化する場合にのみ追加してください。)
    注: ディスクのレイアウト、共有ライブラリなどに関してクラスター内の各ノードが同じ場合は、すべてのノードでcassandra.yamlファイルの同じコピーを使用できます。

    例:

    cluster_name:'MyCassandraCluster' num_tokens:256 seed_provider:- class_name:org.apache.cassandra.locator.SimpleSeedProvider parameters:-seeds:"10.168.66.41,10.176.170.59" listen_address:endpoint_snitch:GossipingPropertyFileSnitch
    注: 各データ・センターから少なくとも1つのノードを含めてください。
  5. cassandra-rackdc.propertiesファイルで、前提条件で決定したデータ・センターとラックの名前を割り当てます。例:

    ノード0〜2

    ## Indicate the rack and dc for this node dc=DC1 rack=RAC1

    ノード3〜5

    ## Indicate the rack and dc for this node dc=DC2 rack=RAC1
  6. すべてのノードにCassandraをインストールして構成したら、シード・ノードを1つずつ起動した後で、残りのノードを起動します。
    注: 自動再起動のためにノードが再起動された場合は、上記の説明のとおり、最初にノードを停止し、各データ・ディレクトリーを消去してください。
    パッケージ・インストール:
    sudo service cassandra start
    tarボール・インストール:
    cd install_location 
    $ bin/cassandra
  7. リングが起動して作動していることを確認するには、以下のコマンドを実行します。
    パッケージ・インストール:
    $ nodetool status
    tarボール・インストール:
    cd install_location 
    $ bin/nodetool status

    各ノードがリストに表示され、ステータスと状態はUN(Up Normal)となります

    cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
    パッケージ・インストール /etc/cassandra/cassandra.yaml
    tarボール・インストール install_location/resources/cassandra/conf/cassandra.yaml
    Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra.yaml