添加节点:使用
nodetool addhost命令,指定新节点的IP地址。删除节点:使用nodetool removenode命令,指定要删除的节点ID。
添加或删除节点是Cassandra集群中常见的操作,下面将详细介绍如何进行这些操作。
添加节点
1、准备一个新的服务器,并安装Cassandra软件,确保新服务器与现有集群的其他节点具有相同的硬件和软件配置。

2、停止新服务器上的Cassandra服务,可以使用以下命令停止Cassandra服务:
```shell
sudo service cassandra stop
```
3、使用sstableloader工具将现有集群的数据复制到新服务器上,执行以下命令:
```shell
sstableloader d /path/to/existing/cluster/data <new_node_ip>

```
4、修改新服务器的cassandra.yaml配置文件,使其与现有集群的配置相匹配,需要修改的参数包括cluster_name、listen_address、rpc_address、endpoint_snitch等。
5、启动新服务器上的Cassandra服务,可以使用以下命令启动Cassandra服务:
```shell
sudo service cassandra start
```
6、等待一段时间,让新节点与现有集群中的其他节点建立连接,可以使用以下命令查看集群状态:

```shell
cqlsh cluster status
```
7、如果一切正常,新节点将被自动添加到现有集群中,可以使用以下命令查看集群中的节点信息:
```shell
cqlsh cluster nodes
```
删除节点
1、在要删除的节点上停止Cassandra服务,可以使用以下命令停止Cassandra服务:
```shell
sudo service cassandra stop
```
2、使用nodetool工具将要从集群中删除的节点标记为下线状态,执行以下命令:
```shell
nodetool decommission <node_ip>
```
3、等待一段时间,让其他节点与要删除的节点断开连接,可以根据需要调整超时时间,可以使用以下命令检查节点的状态:
```shell
nodetool status <node_ip>
```
4、如果节点处于下线状态,可以使用以下命令从集群中删除该节点:
```shell
nodetool removetoken <node_ip>
```
5、重新启动要删除节点上的Cassandra服务,可以使用以下命令启动Cassandra服务:
```shell
sudo service cassandra start
```
6、等待一段时间,让新集群达到稳定状态,可以使用以下命令查看集群状态:
```shell
cqlsh cluster status
```
7、如果一切正常,被删除的节点将从集群中移除,可以使用以下命令查看集群中的节点信息:
```shell
cqlsh cluster nodes
```
相关问题与解答:
1、问题:在添加新节点之前,是否需要对现有集群进行任何准备工作?
解答:在添加新节点之前,需要确保新服务器与现有集群的其他节点具有相同的硬件和软件配置,还需要备份现有集群的数据以防止数据丢失。
2、问题:删除节点后,是否需要重新平衡数据?
解答:删除节点后,不需要手动重新平衡数据,Cassandra会自动将数据迁移到其他可用的节点上,以保持数据的均衡分布。