Cassandra集群 - 在节点之间存储相等的数据

时间:2016-09-07 23:51:04

标签: cassandra

在Cassandra Cluster中,我们如何确保所有节点具有几乎相同的数据,而一个节点拥有更多数据,另一个节点拥有更少数据。

如果出现这种情况,最佳做法是什么

谢谢

2 个答案:

答案 0 :(得分:0)

可以预期5-10%的轻微变化。最常见的原因是您的分区的分布可能不是真正随机的(某些节点上的分区更多),并且分区的大小可能存在很大差异(最小分区是几千字节但最大分区是2GB)。 / p>

还有其他两种可能的情况需要考虑。

SINGLE-TOKEN CLUSTER

如果未正确计算令牌,则某些节点与其他节点相比可能具有更大的令牌范围。使用token generation tool获取正确分布在环上的令牌列表。

如果使用DataStax Enterprise部署群集,最简单的方法是rebalance your cluster with OpsCenter

VNODES CLUSTER

确认您已使用RequestStatus指令在cassandra.yaml中分配了相同数量的令牌。

答案 1 :(得分:0)

除非您为群集使用ByteOrderedPartitioner,否则不应该发生。有关可用分区器及其不应(通常)发生的原因的详细信息,请参阅DataStax文档here