cassandra 阅读cqlsh中的表时返回“unconfigured table”错误,即使该表存在也是如此

cfh9epnr  于 2023-03-02  发布在  Cassandra
关注(0)|答案(1)|浏览(531)

我正在尝试学习一些关于cassandra的知识,为此我在我们现有的kubernetes上放置了一个3节点cassandra数据中心。我从头开始创建了所有的东西,并且我正在做一些我已经在本地环境中做过的测试...但是由于某种原因,它不起作用。它非常基本,如果我通过命令行连接,我会使用我之前定义的密钥空间,我会:

describe tables;

这将正确显示我在test_1密钥空间上创建的所有表:

但过了一会儿,我明白了:

select * from "RawBooking";

我看到了消息"unconfigured table RawBooking"(这是一个例子,但是对于列表中的所有表都是一样的)。
这是nodetool describecluster命令的结果:

Cluster Information:
    Name: guezzt
    Snitch: org.apache.cassandra.locator.GossipingPropertyFileSnitch
    DynamicEndPointSnitch: enabled
    Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
    Schema versions:
            eaf7f96e-8543-3064-a314-351367075ba3: [10.128.3.100, 10.130.2.103]

            c8fa5021-e1d4-3fec-ae5e-f7a9f0c042b9: [10.128.4.102]

我做错了什么?你能建议我应该看什么才能更好地理解这个问题吗?
谢谢大家!

cyej8jka

cyej8jka1#

根据我的经验,当集群中存在模式不一致时,驱动程序(嵌入在cqlsh中)返回“Unconfigured table”错误。
如果您以编程方式进行模式更改,而不检查并等待模式传播到集群中的所有节点,那么节点将具有不同版本的模式,这就是我们所说的“模式不一致”--节点不具有相同的模式版本,因此它们不“一致”。
当您运行一个查询时,如果该查询遇到了具有不同模式版本的节点,则它不知道您查询的表,因此返回“unconfigured table”错误。
您应该执行滚动重启,从种子节点开始,一次一个节点。这应该可以解决您的问题。干杯!

相关问题