【问题标题】:cassandra dont start after change partitioner更改分区程序后,cassandra 不启动
【发布时间】:2018-04-24 09:24:27
【问题描述】:

我更改了 cassandra 分区程序。默认分区器是 Murmur3Partitioner。我编辑 cassandra.yaml 并将分区器更改为 ByteOrderedPartitioner,以便在分区键上使用 >、>=、

但是在停止然后使用以下命令启动服务后:

sudo service dse stop 
sudo nano /etc/dse/cassandra/cassandra.yaml
sudo service dse start

DSE 无法启动并在终端显示以下行:

Job for dse.service failed because the control process exited with error code. See "systemctl status dse.service" and "journalctl -xe" for details.

而 cassandra 日志是:

ERROR [SSTableBatchOpen:2] 2018-04-24 00:54:10,498  SSTableReader.java:511 - Cannot open /var/lib/cassandra/data/system/local-7ad54392bcdd35a6$84174e047860b377/mc-252-big; partitioner org.apache.cassandra.dht.Murmur3Partitioner does not match system partitioner org.apache.cassandra.dht.ByteOrderedPartitioner.  Note that the default partitioner starting with Cassandra 1.2 is Murmur3Partitioner, so you will need  to edit that to match your old partitioner if upgrading.

【问题讨论】:

    标签: cassandra datastax


    【解决方案1】:

    您无法更改分区程序。完全不受支持。

    为了做到这一点,您需要使用 ByteOrderedPartitioner 分区器创建一个新集群,在将数据从旧数据复制到新数据时写入两者。一旦所有数据都通过从旧到新的切换读取复制。

    我强烈建议不要使用 ByteOrderedPartitioner,相反,您应该尝试稍微更改您的数据模型以在单个分区中获取所有 >、>=、

    【讨论】:

    • 谢谢@ChrisLohfink
    猜你喜欢
    • 2021-03-21
    • 2015-02-11
    • 2014-07-20
    • 2020-09-17
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多