【问题标题】:Migrate Datastax Enterprise Cassandra to Apache Cassandra or Datastax Community?将 Datastax Enterprise Cassandra 迁移到 Apache Cassandra 或 Datastax 社区?
【发布时间】:2016-01-19 11:25:44
【问题描述】:

我在 Datastax 4.6 集群上有一个大而简单的 Cassandra 数据库。对于这个非常简单的用例,许可证续订是令人望而却步的,我正在尝试迁移到直接的 Apache 或 Datastax 社区版本。首先可以进行内联更新吗?

我已更改所有键空间以删除“EverywhereStrategy”复制策略,但我仍然收到一个错误,即我试图加入集群的 DSC 版本的 cassandra 不支持它。我正在使用 Like Cassandra 版本 (2.0.16),其他大多数东西似乎都很接近。

java.lang.RuntimeException: org.apache.cassandra.exceptions.ConfigurationException: Unable to find replication strategy class 'org.apache.cassandra.locator.EverywhereStrategy'

如果无法进行内联升级,那么迁移体面大小(30 个节点,150Tb)集群的最佳策略是什么?

【问题讨论】:

  • 我忘记了另一个环中的一个孤立节点。我在那个节点上运行了修复,我认为它摆脱了对 EverywhereStrategy 的最后引用。然后,我有一个带有 solr 索引的旧测试列族,这导致了 Solr 集成所需的缺失类的问题。我删除了那个表,现在我已经能够将节点加入环并且数据似乎正在传输。

标签: cassandra migration datastax


【解决方案1】:

因此,要完成这项工作,您必须提取您在任何表上可能拥有的任何 DSE 功能。

这意味着我必须将 dse_system 表上的复制策略从 EverywhereStrategy 更改为 RF=3 的 SimpleStrategy(或转换后的几乎任何内容,您都可以删除此键空间)错误消息是:

java.lang.RuntimeException: org.apache.cassandra.exceptions.ConfigurationException: Unable to find replication strategy class 'org.apache.cassandra.locator.EverywhereStrategy'

我还不得不删除未使用的 CFS 密钥空间。我们从未使用过 hadoop/CFS 集成,因此无论如何我们在这些键空间中什么都没有。我没有捕捉到这个错误。

大约一年前,我们在这个集群上测试的表上确实有一个 solr 索引,所以我不得不删除这个列族。错误信息是:

java.lang.RuntimeException: java.lang.ClassNotFoundException: com.datastax.bdp.search.solr.Cql3SolrSecondaryIndex

如果您使用必须删除的 Datastax Enterprise 的其他功能,则可能存在其他不兼容问题,但这足以让我进行迁移。

【讨论】:

    【解决方案2】:

    dse-core.jar 包含 EverywhereStrategy 类。

    我们通过以下方式解决了这个问题:

    替换除上述 JAR 之外的所有内容,以便节点可以正常运行。将所有节点迁移到 OSS 后,删除 dse_system 密钥空间(使用此复制),删除 JAR 并一一重启节点。

    【讨论】:

      猜你喜欢
      • 2018-08-04
      • 2023-03-10
      • 1970-01-01
      • 2012-10-04
      • 2013-08-05
      • 1970-01-01
      • 2014-08-25
      • 2015-09-04
      • 2015-08-25
      相关资源
      最近更新 更多