运行select查询时出现cassandra群集错误

u4dcyp6a  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(529)

我创建了一个带有3个节点的cassandra集群,下面是cassandra.yaml文件的配置。

Node 1:
cluster_name: 'My Cluster'
num_tokens: 256
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
    - seeds: 10.0.0.1, 10.0.0.2
listen_address: 10.0.0.1
native_transport_address: 10.0.0.1
native_transport_broadcast_address:1.2.3.4
endpoint_snitch: GossipingPropertyFileSnitch

Node 2:
cluster_name: 'My Cluster'
num_tokens: 256
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
    - seeds: 10.0.0.1, 10.0.0.2
 listen_address: 10.0.0.2
 native_transport_address: 10.0.0.2
 native_transport_broadcast_address:1.2.3.4
 endpoint_snitch: GossipingPropertyFileSnitch

Node 3:
cluster_name: 'My Cluster'
num_tokens: 256
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
    - seeds: 10.0.0.1, 10.0.0.2
listen_address: 10.0.0.3
native_transport_address: 10.0.0.3
native_transport_broadcast_address:1.2.3.4
endpoint_snitch: GossipingPropertyFileSnitch

还将所有节点的cassandra-rackdc.properties文件更改为

Node1: 
dc=dc1
rack=rack1

Node2:
dc=dc1
rack=rack1

Node3:
dc=dc1
rack=rack2

我启动了dse服务,我的三个节点都启动了,并且所有3个节点的状态都显示为“un”。
现在我尝试创建键空间和表。在创建键空间时,我使用下面的命令。

CREATE KEYSPACE IF NOT EXISTS IntelliDish WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'dc1': '1'} AND DURABLE_WRITES = false;

在这样做的时候,我得到了这样一个警告:

Warning: schema version mismatch detected; check the schema versions of your nodes in system.local and system.peers.

然后我创建了表,得到了同样的警告。当我运行select*时,从我的表中得到belwo错误。

ReadFailure: Error from server: code=1300 [Replica(s) failed to execute read] message="Operation failed - received 0 responses and 1 failures (UNKNOWN_TABLE=[/10.0.0.3])" info={'failures': 1, 'received_responses': 0, 'error_code_map': {'10.0.0.3': '0x0005'}, 'required_responses': 1, 'consistency': 'ONE'}.

我错误地观察到它显示了我的第三个节点的ip。我不知道这里发生了什么。
的输出 nodetool describecluster :

Cluster Information:    
    Name: Intellidish
    Snitch: org.apache.cassandra.locator.GossipingPropertyFileSnitch 
    DynamicEndPointSnitch: enabled
    Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
    Schema versions: 407c57b2-94c9-33ed-80e2-b619ca5bfca1: [172.31.6.202, 172.31.7.89]
                     809561be-284f-3129-99ba-94fee6a364c6: [172.31.0.138]
eblbsuwk

eblbsuwk1#

基本上,有一个模式的分歧。当网络有问题或曾经有问题时,就会发生这种情况。该模式与任何其他表中的数据一样存储,只是它需要在所有节点上保持一致。当添加/编辑键空间或表时,无法访问一个节点,就会发生这种情况。
解决这个问题的方法是在受影响的节点上反弹cassandra。如果架构版本仍然不匹配,请尝试滚动反弹所有节点。如果这样做不起作用,那么停用坏节点,擦除它,然后将其重新添加到集群中。

相关问题