如何解决 Cassandra 中的问题“ConfigurationException:列族 ID 不匹配”

Posted

技术标签:

【中文标题】如何解决 Cassandra 中的问题“ConfigurationException:列族 ID 不匹配”【英文标题】:How to resolve issue in Cassandra "ConfigurationException: Column family ID mismatch" 【发布时间】:2020-01-26 06:18:22 【问题描述】:

我们尝试向 Cassandra 中的现有表添加新列。它最终给出了一个异常“org.apache.cassandra.exceptions.ConfigurationException: Column family ID mismatch”。

    当我们执行命令“describe” --> 新列被添加。 当我们尝试插入数据时 --> 会抛出“新添加的列不存在”的异常。 我们尝试通过删除表来重新创建表 --> 表被删除,但在重新创建时显示表已存在。

Cassandra 同步似乎有些问题。

我希望无需重新启动 Cassandra 节点即可解决此问题。

有人可以建议解决此问题的正确方法吗?

谢谢。

【问题讨论】:

你的集群反弹了吗?如果进行了 2 个并行 CREATE/ALTER TABLE 调用,则会出现竞争条件。 nodetool resetlocalschemanodetool describecluster 下不匹配的节点上调用很有用 但“nodetool describecluster”没有显示架构版本差异。我做了滚动重启,然后它才起作用。 【参考方案1】:

集群的滚动重启解决了这个问题。谢谢。

【讨论】:

【参考方案2】:

刷新内存表(nodetool 刷新)应该可以解决这个问题。 冲洗不需要重新启动 cassandra,而排空则需要。

见: Column family ID mismatch during ALTER TABLE

【讨论】:

这里是使用的命令:/opt/cassandra/apache-cassandra-2.2.4/bin/nodetool flush -- mykeyspace mytable

以上是关于如何解决 Cassandra 中的问题“ConfigurationException:列族 ID 不匹配”的主要内容,如果未能解决你的问题,请参考以下文章

CASSANDRA-12813的解决方法:auth中的NPE用于自举节点

如何使值在 cassandra 中独一无二

在datastax cassandra 5.1中,为啥dsetool缺少insights_config命令?

更新/插入中的Cassandra不一致

Cassandra:NoHostAvailableException:所有主机尝试查询失败

如何加快 cassandra 集群中的节点加入过程