Cassandra如何重新分配分区?

Cassandra如何重新分配分区?,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,比如说,我们有一个由2个节点组成的Cassandra集群。将密钥范围为[A-D]的数据插入集群。大致上,我们可以假设节点1存储密钥范围为[A-B]的数据,节点2存储密钥范围为[C-D]的数据。一段时间后,我们又添加了两个节点。为了平衡,应该重新分配分区,对吗?我们现在希望每个节点只存储一个密钥的数据。Cassandra是否重新分配现有数据,然后将其移动到新节点(例如,键为B的现有数据从节点1移动到节点3)?怎么做?默认情况下。每个节点没有一个单一范围(即[A-C]),而是数百个范围(默认情况下,

比如说,我们有一个由2个节点组成的Cassandra集群。将密钥范围为[A-D]的数据插入集群。大致上,我们可以假设节点1存储密钥范围为[A-B]的数据,节点2存储密钥范围为[C-D]的数据。一段时间后,我们又添加了两个节点。为了平衡,应该重新分配分区,对吗?我们现在希望每个节点只存储一个密钥的数据。Cassandra是否重新分配现有数据,然后将其移动到新节点(例如,键为B的现有数据从节点1移动到节点3)?怎么做?

默认情况下。每个节点没有一个单一范围(即[A-C]),而是数百个范围(默认情况下,
cassandra.yaml中的
num_标记
)。根据您的版本,这些令牌范围由随机分配或在早期版本中分配,以最大化平均分配。这样,如果一个节点掉下来或者您添加了一个节点,集群中的所有节点都将位于其中一个节点范围的旁边,以分担负担。

默认情况下。每个节点没有一个单一范围(即[A-C]),而是数百个范围(默认情况下,
cassandra.yaml中的
num_标记
)。根据您的版本,这些令牌范围由随机分配或在早期版本中分配,以最大化平均分配。这样,如果一个节点出现故障或添加了一个节点,集群中的所有节点都将位于其中一个节点范围的旁边,以分担负担