替换单令牌体系结构群集中的节点而不是vnode的步骤。
警告:仅将新节点添加到群集。一个新节点是一个从未启动Apache Cassandra™(DDAC)的DataStax分发的系统。该节点在数据目录,saved_caches,commitlog和提示中必须完全没有PREVIOUS DATA。添加先前用于测试的节点或已从另一个集群中删除的节点,会将较旧的数据合并到集群中,并可能导致数据丢失或损坏。
程序
- 运行nodetool status以确认该节点已死(
DN
)。
- 记录死节点的数据中心,地址和机架设置;您将在以后使用它们。
initial_token
从死节点的cassandra.yaml中记录现有设置 。
- 将替换节点添加到网络并记录其IP地址。
- 如果死节点是种子节点,请在每个节点上更改群集的种子节点配置:
- 在每个节点的文件中,从种子提供者 属性的
- seeds
列表中删除死节点的IP地址。
- 如果群集需要新的种子节点来替换死节点,则将新节点的IP地址添加到
- seeds
其他节点的列表中。
注意: 由于增加了维护并降低了八卦的性能,因此不建议将每个节点都设为种子节点。八卦优化并不严格,但是建议使用较小的种子列表(每个数据中心大约三个节点)。
- 在现有节点上,从文件收集新节点的设置信息 :
cluster_name
endpoint_snitch
- 其他非默认设置:使用diff工具将当前设置与默认设置进行比较。
- 收集机架和数据中心信息:
- 如果集群使用PropertyFileSnitch,请记录文件中列出的机架和数据分配 ,或将文件复制到新节点。
- 如果集群使用GossipingPropertyFileSnitch,Ec2Snitch,Ec2MultiRegionSnitch或GoogleCloudSnitch,则将机架和数据中心分配记录在死节点的 文件中。
- 确保新节点满足所有先决条件,然后在新节点上安装Cassandra,但不要启动Cassandra。
注意:确保安装的Cassandra版本与集群中其他节点上安装的版本相同。如果未使用最新版本,请参阅安装Apache Cassandra 3.11修补程序版本的DataStax分发。
- 如果Cassandra在节点上自动启动,请停止并清除在启动时自动添加的数据。
- 根据先前收集的信息,将值添加到文件中的以下属性 :
- 添加机架和数据中心配置:
- 如果集群使用GossipingPropertyFileSnitch,Ec2Snitch和Ec2MultiRegionSnitch或GoogleCloudSnitch:
- 将死节点的机架和数据中心分配添加到 替换节点上的文件中。
注意:请勿删除死节点IP地址的条目。
- 删除cassandra-topology.properties 文件。
- 如果集群使用PropertyFileSnitch:
- 从现有节点复制cassandra-topology.properties文件,或将设置添加到本地副本。
- 编辑文件以添加具有新节点的IP地址以及死节点的机架和数据中心分配的条目。
- 使用replace_address 选项启动新节点 ,并传入死节点的IP地址。
-
软件包和安装程序服务安装:
- 将以下选项添加到 文件:
JVM_OPTS="$JVM_OPTS -Dcassandra.replace_address=address_of_dead_node
- 启动节点。
- 节点引导后,
replace-address
从cassandra-env.sh中删除 参数 。
- 重新启动节点。
使用以下选项从installation_location启动DataStax Enterprise :
sudo installation_location/bin/dse cassandra -Dcassandra.replace_address = address_of_dead_node
- 运行nodetool status以验证新节点是否已成功引导。
路径:
installation_location/bin
- 在使用PropertyFileSnitch的环境中,至少等待72个小时,然后从文件中删除旧节点的IP地址 。
注意:这可确保从八卦中删除旧节点的信息。如果从属性文件中删除太早,可能会导致问题。使用nodetool gossipinfo检查八卦状态。节点仍处于闲聊中,直到LEFT状态消失。
注:该cassandra-rackdc.properties文件不包含IP信息; 因此,当使用其他图案时,例如GossipingPropertyFileSnitch,则不需要此步骤。