##替换正在运行的节点
用新节点替换正在运行的节点的步骤,例如更新到较新硬件或执行主动维护时。
**注意:**要更改普通节点的IP地址,只需更改当前节点的IP,然后重新启动Cassandra。如果更改种子节点的IP地址,则必须更新每个节点的cassandra.yaml文件的seed_provider列表中的 -seeds参数。
###添加一个节点,然后退役旧节点
您必须准备并启动替换节点,将其集成到群集中,然后停用旧节点。
###步骤
确保在群集中的所有节点上使用相同版本的Cassandra。请参阅安装Apache Cassandra 3.0的早期版本。
1.准备并启动替换节点,如向现有集群添加节点中所述。
2.确认替换节点是活着的:
-
如果不使用vnode,则运行nodetool ring。
-
如果使用vnode,请运行nodetool status。
-
状态应显示:
-
nodetool ring: Up
-
nodetool status: UN
-
3.记录原节点的Host ID。
4.使用nodetool decommission Host ID命令从集群中取消原节点。
5.在同一个数据中心的所有其他节点上运行nodetool cleanup。
**注意:**如果不使用vnodes,请参阅将单令牌节点添加到群集。
###使用nodetool替换正在运行的节点
此方法允许您替换正在运行的节点,同时避免两次传输数据或数据清理。
**警告:**如果使用ONE的一致性级别,则可能会丢失数据,因为该节点可能包含记录的唯一副本。确保没有应用程序使用一致性级别ONE。
###步骤
1.停止要被替换节点上的Cassandra。
2.运行nodetool status确定要替换的节点状态为DN
3.按照 替换死亡节点或死亡种子节点说明使用旧节点的IP地址等信息替换死亡节点-Dcassandra.replace_address。
**注意:**确保在此节点上不使用一致性级别 ONE。