我们有一个10节点的Cassandra集群。数据大小在几个节点上看起来非常偏斜。使用vnodes(32)设置群集。
我正在寻找有关如何找出数据偏差以及如何平衡群集的建议。
Nodetool状态输出
Datacenter: us-west-2_central
=============================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 172.20.111.20 832.35 GB 32 ? a3e94d59-5897-46a5-afe7-b695b0179461 2b
UN 172.20.111.16 895.15 GB 32 ? 7e2f7726-3b98-4535-b44d-c522f7a0d4e6 2b
UN 172.20.110.17 1.39 TB 32 ? 925dc818-04d2-4dfa-a54b-6e0b4098fd76 2a
UN 172.20.111.18 861.17 GB 32 ? acc23bfe-33ee-41b6-b78e-1d813697c9b1 2b
UN 172.20.110.19 835.67 GB 32 ? 5e2fd25a-5bbd-42c2-a627-a134c0e20c8b 2a
UN 172.20.110.13 932.74 GB 32 ? d7534422-de99-49cb-a026-f3fa5ff8c16b 2a
UN 172.20.111.14 782.67 GB 32 ? 80802902-fd4a-4271-8dd9-d7421d823bd2 2b
UN 172.20.110.15 1.03 TB 32 ? 82535a06-30ee-4e7a-9e1e-ca6d33648ce8 2a
UN 172.20.110.10 697.58 GB 32 ? bcf265b1-6e82-4d12-9e7c-2b769ccf1d3a 2a
UN 172.20.111.11 786.71 GB 32 ? d34bcb42-f061-49d9-b4b1-41ae140d868b 2b
您可以看到存在1.39 TB的节点和1.03 TB的其他节点。
答案 0 :(得分:1)
此问题可能有不同的原因。例如,您的数据模型可能是偏斜的原因。如果您的表具有少量非常宽的分区(每个分区有数百万行),则可能是导致此问题的原因。这些类型的分区可能最终会出现特殊的副本,这可能会导致偏斜。
此外,这种偏斜可能完全是偶然的。我的意思是,节点之间的令牌分配可能会偶然结束这种偏差。如果是这种情况,并且如果问题随着时间的推移而变大,则可能需要用新的节点替换高负载的节点。
看一下这篇文章:https://www.datastax.com/dev/blog/token-allocation-algorithm