我有一个3节点单数据中心Cassandra集群,由节点 A (10.0.0.1), B (10.0.0.2)和 C (10.0.0.3)组成 . 重要配置包括:
-
GossipingPropertyFileSnitch(dc = dc1,rack = rack1)
-
种子节点: A (参见章节:已采取的步骤)
-
NetworkTopologyStrategy
-
复制因子:3
问题:
运行nodetool status会产生以下输出:
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 10.0.0.1 177.41 MiB 256 100.0% 0a8da3f3-73d0-4d2f-bf97-e002d91a444f rack1
UN 10.0.0.2 144.34 MiB 256 100.0% 5d8ca11f-a1c2-4381-aeeb-ed824ceafc96 rack1
UN 10.0.0.3 44.36 MiB 256 100.0% b20a490e-b54d-4c65-800c-56d98f5a86dd rack1
这表明负载balacing不能正常工作 . 此外,nodetool describecluster表示模式不一致 .
Cluster Information:
Name: Test Cluster
Snitch: org.apache.cassandra.locator.DynamicEndpointSnitch
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Schema versions:
a4dade6e-d3a1-3168-8ea0-b7ffb11bc742: [10.0.0.1]
f2dcee06-79c5-3855-9305-ce8ad2ee7fe4: [10.0.0.2, 10.0.0.3]
采取的措施
-
所有节点上的端口转发和检查连接
-
种子节点的不同组合( A , B , C , A / B , B / C , A / B / C , A / C )
-
nodetool修复所有节点(没有错误)
编辑1:
A (10.0.0.1)上的nodetool resetlocalschema无法解决模式不一致,甚至在 B (10.0.0.2)和 C (10.0.0.3)上运行后也没有解决 .
编辑2:
在正常关闭所有三个节点并重复 Edit 1 中描述的过程后,解决了模式不一致问题 .
Cluster Information:
Name: Test Cluster
Snitch: org.apache.cassandra.locator.DynamicEndpointSnitch
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Schema versions:
f2dcee06-79c5-3855-9305-ce8ad2ee7fe4: [10.0.0.1, 10.0.0.2, 10.0.0.3]
负载 balancer 问题仍然存在 .