序章

このチュートリアルでは、VPSでCassandraを使用してマルチノードクラスターを構成する方法を説明します。 Cassandraは、拡張性の高いオープンソースデータベースシステムであり、複数のノードを使用してセットアップすると、さまざまなデータセンターでも優れたパフォーマンスを実現します。

各ノードへのCassandraのインストール

各ノードの構成を開始する前に、すべてのノードにCassandraをインストールする必要があります。 VPSでそれを行う方法についての簡単なチュートリアルがあります。 すべてのノードにCassandraをインストールした後、それが実行されていないことを確認する必要があります。 Cassandraを閉じるには、次のように入力します。

sudo ps auwx | grep cassandra

「grep」プロセスとは異なるプロセスが表示された場合は、プロセスIDをコピーして強制終了します。

sudo kill -9 PID

The highlited number is the PID
How to kill the proccess

また、データをクリアする必要があります。 実行してこれを行います:

sudo rm -rf /var/lib/cassandra/*

Cassandraの構成

複数のノード用にCassandraを構成するには、使用するノードの数を事前に把握し、それぞれのトークン数を計算する必要があります。 私たちは’これを行うためのツールを開発しました、そしてあなたはそれをここで手に入れることができます。 処理しているノードの数を書き込むだけで、ノードごとにトークンが作成されます。 たとえば、ノードが3つある場合、次の番号になります。

Node 0: 0
Node 1: 3074457345618258602
Node 2: 6148914691236517205

次に、各ノードの構成ファイルを編集する必要があります。 これを行うには、次のコマンドを実行してnanoテキストエディタを開きます。

nano ~/cassandra/conf/cassandra.yaml

編集する必要のある情報は、すべてのノードで同じ(cluster_name、seed_provider、rpc_address、endpoint_snitch)にすることも、ノードごとに異なる(initial_tokenとlisten_address)こともできます。 シードノードとなるノードを選択し、構成ファイルでこれらの各属性を参照する行を探し、必要に応じて変更します。

cluster_name: 'Name'
initial_token: Token
seed_provider:
    - seeds:  "Seed IP"
listen_address: Droplet's IP
rpc_address: 0.0.0.0
endpoint_snitch: RackInferringSnitch

「Name」をクラスター名に、「Token」を以前に生成した番号(ノードによって異なります)に、「Seed IP」をシードノードのIPに、「Droplet’sIP」をドロップレットのIPアドレスに置き換えます。 ノードごとにこれを行います。 3ノードのセットアップで満たされたこの例:

Node 0
cluster_name: 'MyDigitalOceanCluster'
initial_token: 0
seed_provider:
    - seeds:  "198.211.xxx.0"
listen_address: 198.211.xxx.0
rpc_address: 0.0.0.0
endpoint_snitch: RackInferringSnitch

Node 1
cluster_name: 'MyDigitalOceanCluster'
initial_token: 3074457345618258602
seed_provider:
    - seeds:  "198.211.xxx.0"
listen_address: 192.241.xxx.0
rpc_address: 0.0.0.0
endpoint_snitch: RackInferringSnitch

Node 2
cluster_name: 'MyDigitalOceanCluster'
initial_token: 6148914691236517205
seed_provider:
    - seeds:  "198.211.xxx.0"
listen_address: 37.139.xxx.0
rpc_address: 0.0.0.0
endpoint_snitch: RackInferringSnitch

実行するには、次のように入力します。

sudo sh ~/cassandra/bin/cassandra

シードノードで、それが終了したら、このプロセスを他のノードに複製します。 エラーが表示されない場合は、マルチノードのCassandraセットアップが正常にデプロイされているはずです。