当前位置: 首页 > 知识库问答 >
问题:

我可以将Apache cassandra节点添加到DataStax (DSE) cassandra集群中吗?

徐鸿文
2023-03-14

我正在从Datastax (DSE) Cassandra迁移到Apache Cassandra 3.11。

我有一个7节点的Datastax (DSE) Cassandra集群。

有没有办法创造新的阿帕奇卡桑德拉集群

因此,一旦我的数据开始在两个Cassandra中写入,我就可以将我的Read API从DSE逐渐迁移到Apache。

共有1个答案

楚彦
2023-03-14

是的,我以前做过这个。

首先,找到您的集群正在运行的Cassandra版本(不是DSE版本)的确切版本:

SELECT release_version FROM system.local;

 release_version
-----------------
          3.11.4

使用< code>cqlsh连接时,您也可以看到此版本号。DSE版本的Cassandra将会有一个(长的)内部版本号。但是我们的想法是,新节点上的Apache Cassandra版本应该尽可能地匹配DSE版本的Cassandra。

接下来,将你的阿帕奇卡桑德拉“替换”节点作为新的逻辑数据中心。确保它们在卡桑德拉-rackdc.properties 文件中使用不同的dc_name(与现有节点)。第一个(或两个)节点应使用现有群集中的节点作为种子节点。然后,以下节点可以使用第一个节点作为种子。此外,cluster_name需要匹配。

现在检查<code>system_auth</code>、<code>system_traces</code>、<code>system_distributed</code>的密钥空间定义以及应用程序需要的任何密钥空间。确保他们正在使用NetworkTopologyStrategy。如果不是,请确保是,并为现有DC配置复制因子(RF)(DC名称必须与现有DSE节点的<code>DC_name</code>匹配)。然后,您可以将复制扩展到新的数据中心。

如果当前dc_nameDSE_DC并且新的dc_nameAC_DC,则:

ALTER KEYSPACE yourkeyspace WITH replication =
   {'class': 'NetworkTopologyStrategy',
    'DSE_DC': '3', 'AC_DC': '3'};

完成更改后,在每个新的 Apache 卡桑德拉节点上运行节点工具重建。

nodetool rebuild -- DSE_DC

这将数据从DSE_DC移动到当前节点。然后,您应该能够通过指定新的数据中心名称来切换API。

编辑20200506

检查数据目录。要使其正常工作,需要匹配的最重要的事情是SSTable格式。

版本3.11.4

    43 Feb 20 08:55 md-1-big-CompressionInfo.db
    83 Feb 20 08:55 md-1-big-Data.db
    10 Feb 20 08:55 md-1-big-Digest.crc32
    16 Feb 20 08:55 md-1-big-Filter.db
    17 Feb 20 08:55 md-1-big-Index.db
  4769 Feb 20 08:55 md-1-big-Statistics.db
    57 Feb 20 08:55 md-1-big-Summary.db
    92 Feb 20 08:55 md-1-big-TOC.txt

4.0-alpha4版:

    47 May  6 10:13 na-1-big-CompressionInfo.db
   107 May  6 10:13 na-1-big-Data.db
    10 May  6 10:13 na-1-big-Digest.crc32
    16 May  6 10:13 na-1-big-Filter.db
    32 May  6 10:13 na-1-big-Index.db
  4687 May  6 10:13 na-1-big-Statistics.db
    66 May  6 10:13 na-1-big-Summary.db
    92 May  6 10:13 na-1-big-TOC.txt

您也可以在DataStax的产品兼容性指南中验证这一点。

基本上,如果你的SSTable文件以m[a,b,c,d]为前缀,那么3.11.6应该可以工作。

 类似资料:
  • 我已经在Microsoft Windows 2008 R2服务器上安装了DataStax Community Edition的Cassandra。在单节点集群中运行没有问题。问题是当我尝试向集群添加第二个节点时。在对Cassandra.yaml文件进行了我认为合适的更改后,我不能再启动DataStax Cassandra Community Server 2.0.2服务。错误是“本地计算机上的Da

  • 有什么工作可以做吗?可能是一种远程通知每个节点将新节点添加到集群的方法吗?

  • 我尝试使用和将添加到中,但无法将添加到中。我正在使用NetBeans和后端MySQL。请帮帮我. 编辑:谢谢,但我不知道如何分组。你能帮帮我吗?我有4列。第一列单元格包含项目名称,第二列单元格包含数量,第三列和第四列单元格连接JRadio按钮。然后我想在每一行中分组包含JRadio按钮的第三列和第四列单元格 编辑:如果我试图通过使用这个在jTable的自定义代码中添加radiobutton, ,那

  • 我的第二个问题是:是否需要?我将来可能会添加更多的节点。

  • 卡桑德拉有一张桌子 如何在“排序”列中添加聚类键。不重新创建表

  • 如果不可能进行内联升级,迁移一个相当大的集群(30个节点,150TB)的最佳策略是什么?