Database 3节点Cassandra集群中的负载不均匀和模式不一致
我有一个3节点的单数据中心Cassandra集群,由节点a(10.0.0.1)、B(10.0.0.2)和C(10.0.0.3)组成。有意义的配置包括:Database 3节点Cassandra集群中的负载不均匀和模式不一致,database,cassandra,distributed,bigdata,nosql,Database,Cassandra,Distributed,Bigdata,Nosql,我有一个3节点的单数据中心Cassandra集群,由节点a(10.0.0.1)、B(10.0.0.2)和C(10.0.0.3)组成。有意义的配置包括: 闲聊属性文件窃贼(dc=dc1,机架=rack1) 种子节点:A(请参阅部分:采取的步骤) 网络拓扑策略 复制因子:3 问题是: 运行nodetool status会产生以下输出: Datacenter: dc1 =============== Status=Up/Down |/ State=Normal/Le
- 闲聊属性文件窃贼(dc=dc1,机架=rack1)
- 种子节点:A(请参阅部分:采取的步骤)
- 网络拓扑策略
- 复制因子:3
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
这表明负载平衡工作不正常。此外,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、A/B、B/C、A/C)
- 所有节点上的nodetool修复(无错误)
A(10.0.0.1)上的nodetool resetlocalschema没有解决模式不一致问题,即使在B(10.0.0.2)和C(10.0.0.3)上运行它也没有解决 编辑2:
在正常关闭所有三个节点并重复编辑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]
负载平衡问题仍然存在 您只有一个DC,因此只要节点只有相同的种子节点,该部分就不会有问题。首先尝试在节点
10.0.0.1
上运行nodetool resetlocalschema
,查看它是否使用.2
和.3
移动到架构中。如果没有,则对2和3执行相同操作,直到它们同步。然后你可以看看数据分布。嘿,谢谢你的回复。不幸的是,这并没有解决这个问题,我更新了这个问题。不匹配的版本可能会导致架构不一致,但我假设这里一切正常。下一步是检查日志中是否有可能导致架构不一致的警告和错误,您能在某个地方共享日志吗?我设法解决了架构不一致的问题(更新OP),但不确定这是否是巧合。这方面做得很好。现在您已经有了模式协议,我可能会在集群中运行修复,然后检查负载数据大小