使用cqlsh
向表中添加列时,出现以下错误消息:
ALTER TABLE table ADD dataVersion text;
ServerError: java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.apache.cassandra.exceptions.ConfigurationException: Column family ID mismatch (found dbed2170-c53c-11e7-a6f8-6fd66506919d; expected db9404f0-c53c-11e7-8529-65b72ab1f7cf)
它到底意味着什么,我应该怎么做?这是一个错误吗?该列似乎已成功添加。
Cassandra版本是3.0.14
答案 0 :(得分:3)
它到底意味着什么,我应该怎么做?
当您进行架构更改时,需要传播它。如果在传播之前更改不同节点中的架构,则最终会得到不同的架构版本(ID)。然后会出现此错误。
如果您多次进行架构更改(即使在同一节点上),在应用更改之前会发生另一种情况,也会引发此错误。
一种解决方案是重新启动Cassandra(排空,停止并重新启动)。避免同时应用架构更改。
这是一个错误吗?该列似乎已成功添加。
确实,他们是。但是每个节点可能具有不同的架构。 可以使用nodetool describecluster检索有关当前模式的信息。
答案 1 :(得分:1)
Flushing memtables(nodetool flush
)为我们做到了。
冲洗不需要重新启动cassandra,而排水则需要。