如何解决 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 resetlocalschema
在nodetool 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用于自举节点
在datastax cassandra 5.1中,为啥dsetool缺少insights_config命令?