2013-04-07 54 views
2

我使用apt在Debian上安装Cassandra 1.2.3,之前我使用的是tarball 1.1.7安装。安装后,我改变了从Murmur3Partitioner的分区来RandomPartitioner在cassandra.yaml如下:版本1.2.3上的Cassandra RandomPartitioner

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

然后在开始我看到的不兼容的系统密钥空间错误,如下:

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

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

任何帮助表示赞赏!

干杯

山姆

回答

8

的分区,不能改变,一旦卡桑德拉已开始首次。此错误显示数据目录已用Murmur3Partitioner初始化,但您正在使用RandomPartitioner启动它。

如果您尝试从1.1安装中升级数据,Cassandra不会从正确的位置读取数据。调整您的数据目录以使用您的1.1目录,并且应该将分区程序设置为RandomPartitioner。

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

+0

这是有道理的 - 当安装它时好心地启动完成后为您创建系统CF与Murmur。在更改为随机并重新启动后,删除数据目录中的系统目录将其重新创建为使用RandomPartitioner。 谢谢你非常感谢! :) – Sam 2013-04-08 17:28:15

+0

@Richard你好,请你回应我对这个问题的评论。我不知道如何跟我联系,我是否偷偷摸摸:) http://stackoverflow.com/questions/16800536/retrieve-multiple-columns-value-from-cassandra-using-hector-client – qualebs 2013-07-23 08:44:31

2

我有一个类似的错误由山姆报道时,我做了一个

[根@的fedora用户]#DSE卡桑德拉。 要纠正我做的问题:

  1. [根@的fedora用户]#六/etc/dse/cassandra/cassandra.yaml
  2. 在cassandra.yaml文件提出了以下变化

注释掉“#分区:org.apache.cassandra.dht.Murmur3Partitioner”,取而代之的是“分区:org.apache.cassandra.dht.RandomPartitioner” 3.保存

在cassandra.yaml的变化希望这帮助。

Mayukh。

相关问题