既存のクラスターへのノードの追加

仮想ノードを使用する場合にノードを追加する手順。

仮想ノード(vnode)により、既存のクラスターへのノードの追加が大幅に簡素化されます。

  • トークンを計算して各ノードに割り当てる必要はなくなりました。
  • また、クラスターに参加するノードがデータを均等に引き受けるため、クラスターのバランス調整をする必要はなくなりました。

vnodeの仕組みの詳細な説明については、「仮想ノード」を参照してください。

ラックを使用する場合は、両方のノードが同じラックにある場合、一度に2つのノードを安全にブートストラップできます。
注: vnodeを使用しない場合、OpsCenterを使用してキャパシティを追加するか、単一トークンのノードの追加または置き換えを参照してください。

手順

クラスターの他のノードにインストールされているバージョンと同じバージョンのCassandraがインストールされていることを確認してください。「以前のリリースのインストール」を参照してください。

  1. 新しいノードにCassandraをインストールします。ただし、Cassandraを起動しないでください。

    DebianインストールまたはWindowsインストールの場合、Cassandraは自動的に起動するため、ノードを停止Cassandraし、データを消去消去する必要があります。

  2. 各ノードについて、cassandra.yamlで以下のプロパティを設定します。また、スニッチに応じて、cassandra-topology.propertiesまたはcassandra-rackdc.properties構成ファイルを設定します。
    • auto_bootstrap - このオプションがfalseに設定されている場合、trueに設定する必要があります。このオプションは、デフォルトのcassandra.yaml構成ファイルには記述されておらず、デフォルトでtrueになります。
    • cluster_name - 新しいノードが参加するクラスターの名前。
    • listen_address/broadcast_address - 通常、空欄のままです。そうでなければ、Cassandraの他のノードが新しいノードに接続するために使用するIPアドレスまたはホスト名を使用します。
    • endpoint_snitch - Cassandraがノードを見つけたり、要求を経路指定したりするために使用するスニッチ。
    • num_tokens - ノードに割り当てるvnodeの数。クラスターのノード間でハードウェアの能力が異なる場合、比例する数のvnodeを大きいマシンに割り当てることができます。
    • seed_provider - 新しいノードが既存のクラスター内の少なくとも1つのノードのリストにあることを確認してください。クラスターについて学習したり、ゴシップのプロセスを確立したりするために、新しいノードが問い合わせる必要があるノードは、この設定の-seedsリストによって決まります。
      注: シード・ノードは、ブートストラップを行えません。新しいノードが-seedsリストにないことを確認してください。すべてのノードをシード・ノードにしないでください。ノード間のコミュニケーション(ゴシップ)」を参照してください。
    • cassandra.yamlファイルおよびcassandra-topology.propertiesまたはcassandra-rackdc.propertiesファイルの既存のクラスターに対して行ったその他のデフォルト以外の設定を変更します。diffコマンドを使用して、既存のノードと新しいノードの違いを見つけて出力します。
    cassandra-topology.propertiesファイルの場所は、インストールのタイプによって異なります。
    パッケージ・インストール /etc/cassandra/cassandra-topology.properties
    tarボール・インストール install_location/conf/cassandra-topology.properties
    Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra-topology.properties
    cassandra-rackdc.propertiesファイルの場所は、インストールのタイプによって異なります。
    パッケージ・インストール /etc/cassandra/cassandra-rackdc.properties
    tarボール・インストール install_location/conf/cassandra-rackdc.properties
    Windowsインストール C:\Program Files\DataStax Community\apache-cassandra\conf\cassandra-rackdc.properties
    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
  3. nodetool statusを使用して、ノードは完全にブートストラップされ、その他すべてのノードがアップ(UN)状態であり、他の状態ではないことを確認します。
  4. 新しいノードをすべて起動したら、既存のノードのそれぞれでnodetool cleanupを実行し、これらのノードに属さなくなったキーを削除します。1つのノードでクリーンアップが完了するまで待ってから、次のノードのnodetool cleanupを実行してください。

    クリーンアップは、利用が少ない時間帯まで延期しても安全です。