在添加一个或多个节点后,如何使新的cassandra群集保持平衡?
为了在这里进行测试并简单地描述这个问题,我使用了两个节点来构建一个在添加一个或多个节点后,如何使新的cassandra群集保持平衡?,cassandra,cassandra-2.1,Cassandra,Cassandra 2.1,为了在这里进行测试并简单地描述这个问题,我使用了两个节点来构建一个cassandra(2.1.11)集群(192.168.56.110和192.168.56.111),现在我在这个集群中添加了一个额外的节点(192.168.56.112),我希望我的新环能够通过使用nodetool move命令实现平衡,但当我使用以下步骤时: 获取192.168.56.110的所有令牌范围,例如9815884274221702712--1007755089748978774 获取新节点的所有令牌范围,例如545
cassandra(2.1.11)
集群(192.168.56.110
和192.168.56.111
),现在我在这个集群中添加了一个额外的节点(192.168.56.112
),我希望我的新环能够通过使用nodetool move
命令实现平衡,但当我使用以下步骤时:
192.168.56.110
的所有令牌范围,例如9815884274221702712--1007755089748978774
5458173168911717635--5458821955945522089
[root@test-1 pengcz]# ../cassandra-2.1.11/bin/nodetool -h 192.168.56.110 -u admin -pw admin4587 move 5458173168911717635
error: target token 5458173168911717635 is already owned by another node.
-- StackTrace --
java.io.IOException: target token 5458173168911717635 is already owned by another node.
根据文章所述:如果你将节点添加到集群中,你的环将不平衡,获得完美平衡的唯一方法是为每个节点计算新令牌,并使用nodetool move命令手动分配给每个节点。
,我想我似乎理解nodetool move
命令错误,但我不知道如何理解它并平衡新集群?任何建议都将不胜感激因此,您将设置num_标记更改为512。启动新节点后,您应该记住,种子节点不会自动引导,但其他节点在启动后会平衡数据。要平衡种子节点,应为节点运行nodetool修复。时间取决于数据大小。因此,您将设置num_标记更改为512。启动新节点后,您应该记住,种子节点不会自动引导,但其他节点在启动后会平衡数据。要平衡种子节点,应为节点运行nodetool修复。时间取决于数据大小。是否使用虚拟节点?(num_标记在cassandra.yaml中设置的值)。如果是,则不需要使用nodetool move atall@doanduyhai非常感谢。是,我设置了
num\u令牌:512
,so@doanduyhai非常感谢。您的回答确保我不需要手动重新平衡集群,因为我在cassandra.yaml
中设置了num_令牌:512
。在我设置配置并启动新节点的cassandra后,平衡会自动消失吗?唯一的问题是平衡需要很长时间。您是否使用虚拟节点?(num_标记在cassandra.yaml中设置的值)。如果是,则不需要使用nodetool move atall@doanduyhai非常感谢。是,我设置了num\u令牌:512
,so@doanduyhai非常感谢。您的回答确保我不需要手动重新平衡集群,因为我在cassandra.yaml
中设置了num_令牌:512
。在我设置配置并启动新节点的cassandra后,平衡会自动消失吗?唯一的问题是平衡需要很长时间