【问题标题】:Cassandra RandomPartitioner on version 1.2.3Cassandra RandomPartitioner 版本 1.2.3
【发布时间】:2013-03-29 17:52:09
【问题描述】:

我正在使用 apt 在 debian 上安装 Cassandra 1.2.3,我之前使用的是 tarball 1.1.7 安装。安装后,我将 cassandra.yaml 中的分区器从 Murmur3Partitioner 更改为 RandomPartitioner,如下所示:

分区器:org.apache.cassandra.dht.RandomPartitioner

然后在启动时我看到不兼容的系统键空间错误如下:

错误 18:22:11,465 无法打开 /var/lib/cassandra/data/system/schema_keyspaces/system-schema_keyspaces-ib-1;分区器 org.apache.cassandra.dht.Murmur3Partitioner 与系统分区器 org.apache.cassandra.dht.RandomPartitioner 不匹配。请注意,从 Cassandra 1.2 开始的默认分区程序是 Murmur3Partitioner,因此如果升级,您需要对其进行编辑以匹配您的旧分区程序。 返回值为 1 的服务退出

如何将系统键空间设置为 RandomPartitioner?我已经尝试清除数据文件夹,apt-get remove,也 apt-get purge 然后重新安装,更改为 RandomPartitioner 然后启动 cassandra 但它仍然失败。我也在我的 ubuntu 桌面上复制了这个,所以我认为我在这里做错了什么。

感谢任何帮助!

干杯

山姆

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    一旦 Cassandra 首次启动,就无法更改分区程序。此错误表明数据目录已使用 Murmur3Partitioner 初始化,但您使用 RandomPartitioner 启动它。

    如果您尝试从 1.1 安装升级您的数据,Cassandra 没有从正确的位置读取数据。调整你的数据目录以使用你的 1.1 目录,它应该从 partitioner 设置为 RandomPartitioner 开始。

    如果您尝试在没有数据的情况下启动,请停止 Cassandra,删除 /var/lib/cassandra/* 并重新启动它。请注意,您需要删除 commitlog 目录以及数据目录。

    【讨论】:

    • 这是有道理的——安装完成后它会自动启动,从而创建带有 Murmur 的系统 CF。在更改为 Random 并重新启动后删除数据目录中的系统目录会重新创建它们,就像使用 RandomPartitioner 一样。非常感谢理查德! :)
    • @Richard 嗨,您能回复我对这个问题的评论吗?我不知道怎么联系你我跟踪了:) stackoverflow.com/questions/16800536/…
    【解决方案2】:

    我遇到了与 Sam 报告的类似错误

    [root@fedora 用户]# dse cassandra. 为了纠正我所做的问题:

    1. [root@fedora 用户]# vi /etc/dse/cassandra/cassandra.yaml
    2. 在 cassandra.yaml 文件中进行了以下更改

    注释掉“# partitioner: org.apache.cassandra.dht.Murmur3Partitioner”并将其替换为“partitioner: org.apache.cassandra.dht.RandomPartitioner” 3. 保存cassandra.yaml中的改动

    希望这会有所帮助。

    马尤克。

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 1970-01-01
      • 2012-03-31
      • 2021-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多