我有一个简单的单节点cassandra设置(1.1.0) (默认设置)。每当我尝试在cassandra-cli中创建一个密钥空间时,我都会得到这样的错误: default@unknown create keyspace tax;org.apache.thrift.transport.TTransportException
在cassandra服务器日志中,异常stacktrace: ERROR 12:15:04,722 exception In thread ThreadMigrationStage:1,5,main
java.lang.AssertionError
at org.apache.cassandra.db.DefsTable.updateKeyspace(DefsTable.java:441)
at org.apache.cassandra.db.DefsTable.mergeKeyspaces(DefsTable.java:339)
at org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:269)
at org.apache.cassandra.service.MigrationManager$1.call(MigrationManager.java:214)我尝试删除./var/lib/cassandra/data中的内容并重新启动服务器和我的mac,但仍然遇到同样的问题。
发布于 2012-06-04 17:51:23
下面是向Cassandra添加keyspace的流程。(根据Cassandrda源代码中的注释。如果我说错了,请纠正我)
1)在第一步,它检查是否添加了任何新的键位。
2)在第二步,我们检查是否有任何键空间被重新创建,在此上下文中,重新创建意味着它们先前被删除,但仍然作为空键存在于低级模式中
3)在最后一步,我们更新修改后的键空间,并保存键空间,稍后删除它们。
在修改Keyspace时,它调用函数"updateKeyspace“,在这里,如果密钥空间元数据被破坏,它就会抛出断言错误。
因此,在您的情况下,可能是您删除了相同的键空间,并试图重新创建,这是导致此问题的原因,或者正如您提到的那样,这是元数据损坏。
发布于 2012-06-04 17:06:41
看起来系统密钥空间被破坏了。从中删除数据文件
并重新启动cassandra服务器解决了此问题。(上述目录在$CASSANDRA_HOME/conf/cassandra.yaml中定义)
https://stackoverflow.com/questions/10877417
复制相似问题