複数ノード構成時の設定と起動
複数ノード構成を構築する方法を解説します。設定ファイルの変更を適切に行えば簡単に構築することができます。IPアドレス192.168.111.28から30までの3ノードで構成します。最初に起動する1ノード目は、SEEDの役割を持ちます。各ノードは、最初にRINGに参加する際にSEEDからRINGの構成情報を受領します。
ネットワーク設定
複数台で運用する場合、ノード間で通信を行って同期を行います。そのため、いくつかのPortを他のノードから通信可能に設定する必要があります。
内容 | Port |
---|---|
Thrift(RPC)等での接続ポート | 9160 |
CQL用のトランスポート | 9042 |
複数インスタンス(ノード)間で連携するためのポート | 7000 |
複数インスタンス(ノード)間で連携するためのポート(SSL) | 7001 |
執筆環境では、iptablesファイルを更新して設定しました。
[root@localhost bin]# vi /etc/sysconfig/iptables
以下の4行を追記しました。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9160 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 9042 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 7001 -j ACCEPT
データのクリア
ノードとして稼働すると、データディレクトリとログディレクトリにデータが記録されています。新たにRINGに追加するノードは、イニシャル状態である必要があります。そのような場合には、以下のコマンドでクリアします。
rm -rf /var/lib/cassandra/* rm -rf /var/log/cassandra/*
Cassandra設定
複数台で運用するには、Cassandra設定ファイルcassandra.yamlを構成に合わせて変更する必要があります。
項目 | 行数(操作) | 1ノード目(SEED) | 2ノード目 | 3ノード目 |
---|---|---|---|---|
192.168.111.28 | 192.168.111.29 | 192.168.111.30 | ||
seeds | 239(更新) | 192.168.111.28 | 192.168.111.28 | 192.168.111.28 |
listen_address | 330(更新) | 192.168.111.28 | 192.168.111.29 | 192.168.111.30 |
rpc_address | 366(更新) | 0.0.0.0 | 0.0.0.0 | 0.0.0.0 |
auto_bootstrap | 705(追記) | true | true |
2ノード目(192.168.111.29)は、次のように設定しています。
- 239行目(更新)
- seeds: "192.168.111.28"
- 330行目(更新)
listen_address: 192.168.111.29
- 366行目(更新)
rpc_address: 0.0.0.0
- 705行目(追加)
auto_bootstrap : true
動作確認
SEEDに指定されている1ノード目を起動します。nodetoolコマンドで確認すると、1ノードのみ表示されます。他のノードは、RINGに参加していないので表示されません。
[root@localhost bin]# ./cassandra -p [root@localhost bin]# ./nodetool -h localhost ring Note: Ownership information does not include topology; for complete information, specify a keyspace Datacenter: datacenter1 ========== Address Rack Status State Load Owns Token 192.168.111.28 rack1 Up Normal 14.02KB 100.00% 2588204910878942732
2ノード目を起動します。起動コマンドとパラメータは、1ノード目と同様です。しばらく(執筆環境では30秒ぐらい)すると、RINGへの参加を完了します。nodetoolコマンドで、構成を確認します。ノード数が2台となり、いずれもUp(稼働)しています。
[root@localhost bin]# ./nodetool -h localhost ring Note: Ownership information does not include topology; for complete information, specify a keyspace Datacenter: datacenter1 ========== Address Rack Status State Load Owns Token 2588204910878942732 192.168.111.29 rack1 Up Normal 15.53KB 44.96% -7564491331177403445 192.168.111.28 rack1 Up Normal 18.79KB 55.04% 2588204910878942732
3ノード目を起動します。起動コマンドとパラメータは、1ノード目と同様です。nodetoolコマンドで、構成を確認します。しばらく(執筆環境では30秒ぐらい)すると、RINGへの参加を完了します。これで、すべてのノードがRINGに接続しました。
[root@localhost bin]# ./nodetool -h localhost ring Note: Ownership information does not include topology; for complete information, specify a keyspace Datacenter: datacenter1 ========== Address Rack Status State Load Owns Token 2588204910878942732 192.168.111.29 rack1 Up Normal 15.53KB 44.96% -7564491331177403445 192.168.111.30 rack1 Up Normal 20.29KB 27.52% -2488143210149230357 192.168.111.28 rack1 Up Normal 23.55KB 27.52% 2588204910878942732
RINGに接続するとお互いに状況を監視しています。killコマンドで、2および3ノード目を停止します。1ノード目からnodetoolコマンドで確認すると、2および3ノードはDown状態です。
[root@localhost bin]# ./nodetool -h localhost ring Note: Ownership information does not include topology; for complete information, specify a keyspace Datacenter: datacenter1 ========== Address Rack Status State Load Owns Token 2588204910878942732 192.168.111.29 rack1 Down Normal 20.29KB 44.96% -7564491331177403445 192.168.111.30 rack1 Down Normal 20.29KB 27.52% -2488143210149230357 192.168.111.28 rack1 Up Normal 23.55KB 27.52% 2588204910878942732
むすび
Cassandraは、ビックデータを活用するための高度な分散処理環境を提供します。本書でも体験いただいたとおり、インストール作業も非常にシンプルな手順で行えるようになっています。また、複数ノード構成でも設定ファイルを修正するだけで構築が可能です。ぜひ、お試しください。