将数据从单节点cassandra群集迁移到另一个单节点cassandra群集
我有一个单节点Cassandra集群,其上有大约44gb的数据(/var/lib/Cassandra/data/my_keyspace)。当前存储容量为1 tb,我需要将所有数据迁移到另一个具有相同设置的VM(单节点群集)。我的数据节点每秒都有数据被推送到,所以我无法承受任何停机时间(一些传感器正在推送时间序列数据) 经过一番研究,我决定最好将新节点添加到现有集群中,然后让旧节点流式传输所有数据,流式传输完成后,让旧节点退役 资料来源:将数据从单节点cassandra群集迁移到另一个单节点cassandra群集,cassandra,database-migration,Cassandra,Database Migration,我有一个单节点Cassandra集群,其上有大约44gb的数据(/var/lib/Cassandra/data/my_keyspace)。当前存储容量为1 tb,我需要将所有数据迁移到另一个具有相同设置的VM(单节点群集)。我的数据节点每秒都有数据被推送到,所以我无法承受任何停机时间(一些传感器正在推送时间序列数据) 经过一番研究,我决定最好将新节点添加到现有集群中,然后让旧节点流式传输所有数据,流式传输完成后,让旧节点退役 资料来源: 将旧节点配置为新节点的种子节点 将新节点添加到环中(aut
replication\u factor
1,因此请确保您对查询使用的一致性级别为1
nodetool cleanup
。您将不关心来自停用节点的剩余数据,因为所有数据都将被移动到替换它的新节点
replication\u factor
1,因此请确保您对查询使用的一致性级别为1
nodetool cleanup
。您将不关心来自停用节点的剩余数据,因为所有数据都将被移动到替换它的新节点
太棒了,谢谢你的见解。为了实现缺少的步骤,我认为我需要在new nodes cassandra.yaml文件中提及新旧节点的IP地址。“是吗?”达康格尔我的建议是彻底研究一下。有许多事情需要确保不要阻止在同一主机上运行的2个节点。在live群集上执行此操作之前,请先进行试验和测试。设置(从我的头顶上看)是:需要更改JMX端口,以便两个Cassandra节点不会相互阻塞(Cassandra env.sh),也可以更改listen_地址。还有本机请求端口(默认情况下为9042)。太棒了,谢谢你的见解。为了实现缺少的步骤,我认为我需要在new nodes cassandra.yaml文件中提及新旧节点的IP地址。“是吗?”达康格尔我的建议是彻底研究一下。有许多事情需要确保不要阻止在同一主机上运行的2个节点。在live群集上执行此操作之前,请先进行试验和测试。设置(从我的头顶上看)是:需要更改JMX端口,以便两个Cassandra节点不会相互阻塞(Cassandra env.sh),也可以更改listen_地址。还有本机请求端口(默认情况下为9042)。
Keyspace :- CREATE KEYSPACE my_keysopace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 127.0.0.1 43.4 GiB 256 100.0% e0ae36db-f639-430c-91ad-6af3ffb6f906 rack1