替换 a dead seed node
使用一个新的node,替换Cassandra数据库中 a dead seed node,并让该新节点成为种子节点(or 节点)
步骤
-
1.运行 nodetool status 来验证该node已死亡
-
2.记录 死亡节点的 datacenter、address、rack 设置
-
3.设置replacement node的网络环境,并记录该IP
- 设置该节点千兆和万兆IP 192.168.10.199 192.168.100.199
-
4.改变集群中每个节点的seed node 设置
- 4.1 每个节点的cassandra.yaml,移除来自于seed-provider性质的seeds list中的死亡节点IP地址
- 4.2 如果该新增节点为种子节点,把新节点的IP地址添加到seeds list
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-htuKHE2k-1607931043569)(Img/QQ截图20201214110426.png)]
-
5.从存在节点的cassandra.yaml 获取新节点的如下设置信息
- cluster_name
- endpoint_snitch
- 其他非默认设置。使用文件内容比较工具(如:WinMerge)比较当前设置文件和默认配置文件
Cassandra.yaml配置文件
-
6.得到 rack、datacenter 信息
- 如果集群使用 PropertyFileSnitch(endpoint_snitch 设置的属性值),记录cassandra-topology.properties文件里面的datacenter和rack,or复制这个文件到新的节点
- 如果集群使用GossipingProertyFileSnitch、Ec2Snitch、Ec2MultiRegionSnitch、GoogleCloudSnitch,记录死亡节点的cassandra-rackdc.properties 文件指派的datacenter、rack
-
7.确保新节点满足所有先决条件,然后在新节点上安装DSE,但不启动DSE
-
8.如果DSE自动在节点上启动,stop、clear 被自动启动添加的startup上的数据
(7、8 两步可以不操作) -
9.从你搜集的信息中,把数值添加到cassandra.yaml 下面的参数中。
- auto_bootstrap:如果 auto_bootstrap存在且被设置为false,把他设置为true。(这个设置在默认 cassandra.yaml配置文件中不存在)
- cluster_name
- seed list
-
10.添加rack、datacenter配置
- 如果集群使用GossipingProertyFileSnitch、Ec2Snitch、Ec2MultiRegionSnitch、GoogleCloudSnitch
- a.把cassandra-rackdc.properties 文件分配的死亡节点rack、datacenter添加到替换节点
- b.删除 cassandra-topology.properties文件(或者整个文件内容注释掉)
- 如果集群使用 PropertyFileSnitch
- a.复制 已存在节点的 cassandra-topology.properties文件,或者添加设置到本地副本里
- b.编辑文件,添加新节点的IP地址和死亡节点的rack、datacenter 实体
- 如果集群使用GossipingProertyFileSnitch、Ec2Snitch、Ec2MultiRegionSnitch、GoogleCloudSnitch
-
11.使用 replace_address 选项启动新的节点,传入死亡节点的IP地址
- 软件包和安装程序服务安装
- a.把下面选项添加到 cassandra-env.sh 文件中
- JVM_OPTS="$JVM_OPTS -Dcassandra.replace_address=address_of_dead_node
- 启动节点
- 在节点引导程序后,移除 cassandra-env.sh 文件 replace_address参数
- 重启节点
- a.把下面选项添加到 cassandra-env.sh 文件中
- Tarball 和免安装程序安装
- Start DataStax Enterprise from the installation_location with this option:
sudo bin/dse cassandra -Dcassandra.replace_address=address_of_dead_node
- Start DataStax Enterprise from the installation_location with this option:
- 软件包和安装程序服务安装
-
12.执行 nodetool status 来验证新节点已经被成功引导
In cassandra cluster,Replacing a dead node or dead seed node
cluster
https://docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/operations/opsReplaceNode.html