UbuntuVPSでCassandraを使用してマルチノードクラスターを構成する方法
序章
このチュートリアルでは、VPSでCassandraを使用してマルチノードクラスターを構成する方法を説明します。 Cassandraは、拡張性の高いオープンソースデータベースシステムであり、複数のノードを使用してセットアップすると、さまざまなデータセンターでも優れたパフォーマンスを実現します。
各ノードへのCassandraのインストール
各ノードの構成を開始する前に、すべてのノードにCassandraをインストールする必要があります。 VPSでそれを行う方法についての簡単なチュートリアルがあります。 すべてのノードにCassandraをインストールした後、それが実行されていないことを確認する必要があります。 Cassandraを閉じるには、次のように入力します。
sudo ps auwx | grep cassandra
「grep」プロセスとは異なるプロセスが表示された場合は、プロセスIDをコピーして強制終了します。
sudo kill -9 PID
また、データをクリアする必要があります。 実行してこれを行います:
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セットアップが正常にデプロイされているはずです。