我正在从datastax(dse)cassandra迁移到ApacheCassandra3.11。
我有一个由datastax(dse)cassandra的7个节点组成的集群。
有没有一种方法可以创建新的apachecassandra集群并将其连接到dse cassandra,以便写入dse和apachecassandra
因此,一旦我的数据开始用两种cassandra编写,我就可以将我的readapi从dse逐渐迁移到apache。
我正在从datastax(dse)cassandra迁移到ApacheCassandra3.11。
我有一个由datastax(dse)cassandra的7个节点组成的集群。
有没有一种方法可以创建新的apachecassandra集群并将其连接到dse cassandra,以便写入dse和apachecassandra
因此,一旦我的数据开始用两种cassandra编写,我就可以将我的readapi从dse逐渐迁移到apache。
1条答案
按热度按时间rkkpypqq1#
是的,我以前做过。
首先,找到集群正在运行的cassandra版本(不是dse版本)的确切版本:
连接时也可以看到此版本号
cqlsh
. dse版本的cassandra将在其上添加一个(长)版本号。但是,新节点上的apachecassandra版本应该与dse版本的cassandra尽可能地匹配。接下来,将apachecassandra“替换”节点构建为一个新的逻辑数据中心。确保他们使用不同的
dc_name
(而不是现有的节点)cassandra-rackdc.properties
文件。第一个(或两个)节点应该使用现有集群中的节点作为种子节点。然后,以下节点可以使用第一个节点作为种子。另外,还有cluster_name
需要匹配。现在检查键空间定义
system_auth
,system_traces
,system_distributed
,以及应用程序需要的任何键空间。确保他们正在使用NetworkTopologyStrategy
. 如果不是,请确保是,并为现有dc配置复制因子(rf)(dc名称必须匹配)dc_name
现有dse节点)。然后您可以将复制扩展到新的数据中心。如果是电流
dc_name
是DSE_DC
以及新的dc_name
是AC_DC
,然后:完成更改后,在每个新的apache cassandra节点上运行nodetool重建。
将数据从
DSE_DC
到当前节点。然后,您应该能够通过指定新的数据中心名称来切换api。编辑20200506
检查数据目录。最重要的是需要匹配sstable格式。
版本3.11.4+
版本4.0-4:
您还可以在datastax的产品兼容性指南中验证这一点。
基本上,如果sstable文件的前缀是m[a,b,c,d],那么3.11.6应该可以工作。