Cassandra集群搭建
1、准备
采用3台CentOS x64系统(虚拟机)
为每台虚拟机设置静态IP,确保三台防火墙已关闭
192.168.100.20 (seed)
192.168.100.30 (seed)
192.168.100.40
选择 20、30两台机器作为集群的种子节点(seed)。
种子节点的作用:
一个新节点加入集群时,需要通过种子节点来发现集群中其它节点,
需要至少一个活跃的种子节点可以连接,一旦节点加入这个集群,知道了集群中的其它节点, 这个节点在下次启动的时候就不需要种子节点了。
对于种子节点没有特殊要求,可以设置任何一个节点为种子。
2、 改配置
需要在每台机器的配置文件cassandra.yml中进行一些修改,包括:
cluster_name 集群名字,每个节点都要一样
seeds 填写2个节点的ip作为 种子节点,每个节点的内容都要一样
listen_address 填写当前节点所在机器的IP地址
rpc_address 填写当前节点所在机器的IP地址
具体修改如下:
192.168.100.20 机器修改的内容:
cluster_name: 'Test Cluster'
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "192.168.100.20,192.168.100.30"
listen_address: 192.168.100.20
rpc_address: 192.168.100.20
192.168.100.30 机器的修改内容
cluster_name: 'Test Cluster'
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "192.168.100.20,192.168.100.30"
listen_address: 192.168.100.30
rpc_address: 192.168.100.30
192.168.100.40 机器的修改内容
cluster_name: 'Test Cluster'
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "192.168.100.20,192.168.100.30"
listen_address: 192.168.100.40
rpc_address: 192.168.100.40
修改完成后,启动每个节点。
可以在192.168.100.20机器上使用 ./nodetool status 命令进行测试
[bta60@moban bin]$ ./nodetool status
或者
[oracle@oracle19c-3 apache-cassandra-3.9]$ sh start.sh status
结果如下:
************cassandra***************
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 192.168.100.40 145.99 KiB 256 64.9% c3b5c6f5-5bf8-4059-9caf-a0f10c85056e rack1
UN 192.168.100.30 152.79 KiB 256 66.2% 2afec44e-47e8-4c34-977c-fd857f0f6466 rack1
UN 192.168.100.20 217.64 KiB 256 68.9% 0cce8919-1867-49b9-a298-9143731e760f rack1