【发布时间】:2020-04-19 16:08:10
【问题描述】:
我们有一个 3 节点 Cassandra 集群(版本 3.16)。在其中一个节点(10.0.4.4)上,我们需要将数据从一个驱动器移动到同一节点上的另一个驱动器。在 SO 和其他网站上,我们看到了以下过程:
首先将数据从旧位置同步到新位置:
sudo rsync -avzP --delete /var/lib/cassandra/data /datadrive/cassandra/data
重复直到速度足够快。然后排空并刷新节点
nodetool flush
nodetool drain
停止 cassandra 服务。我们在 systemd 上运行它,所以我们发出
sudo systemctl stop cassandra
再次运行rsync
sudo rsync -avzP --delete /var/lib/cassandra/data /datadrive/cassandra/data
更新 cassandra.yaml 并设置 data_file_directories:
data_file_directories:
- /datadrive/cassandra/data
确保已设置权限:
chown -R cassandra:cassandra /datadrive/cassandra/data
重启节点:
sudo systemctl start cassandra
执行此序列时,在启动时我们会收到以下错误:
ERROR [main] 2020-04-18 14:51:51,742 CassandraDaemon.java:774 - Exception encountered during startup
Apr 18 14:51:51 i1 cassandra: java.lang.RuntimeException: A node with address /10.0.4.4 already exists,
cancelling join. Use cassandra.replace_address if you want to replace this node.
我们缺少什么?节点没有被替换,所以我犹豫设置replace_address。
更改已运行节点的数据文件夹的正确方法是什么?
谢谢。
【问题讨论】:
标签: cassandra-3.0