我希望将3个节点添加到现有的6个节点的cassandra集群中,但是由于令牌分配,我对如何最好地做到这一点感到困惑。
当前,现有的6节点群集未使用vNode(无法更改),并且正在使用RandomPartitioner,因此,根据令牌生成器添加了当前令牌。问题在于,将3个节点添加到6个节点的群集中意味着重新计算的令牌将使新节点7具有与当前节点5相同的令牌。
这里的最佳做法是什么?如果我在现有节点上执行一个nodetool来添加重新计算的令牌,则使用正确的配置和令牌来引导新节点。还是我添加没有令牌的新节点,并在引导后启动,然后nodetool在所有节点中移动并添加新计算的令牌,从第二个节点开始(因为第一个节点在RandomPartitioner中始终为0)。
我已经读了很多书,但似乎找不到解决这种情况的方案。而且我不能添加3个以上的节点,总而言之...
任何帮助都收到了!
答案 0 :(得分:0)
您需要为整个集群重新计算令牌,并将新令牌分配给现有节点。可以在here中找到详细说明。由于您要对整个群集进行重新计算,因此您不应遇到正在讨论的问题。
我认为最好的解决方案是在add a new DC上使用vnodes和Murmur3。复制数据并将所有客户端移至新的DC之后,您将decommission the old DC。