【问题标题】:Cassandra 3.x - Adding 3 nodes to a 6 node clusterCassandra 3.x - 将 3 个节点添加到 6 节点集群
【发布时间】:2018-07-17 15:18:10
【问题描述】:

我希望将 3 个节点添加到现有的 6 节点 cassandra 集群,但由于令牌分配,我对如何最好地做到这一点有点困惑。

目前,现有的 6 节点集群未使用 vNodes(无法更改),而是使用 RandomPartitioner,因此当前令牌已根据令牌生成器添加。问题在于,将 3 个节点添加到 6 节点集群意味着重新计算的令牌会使新节点 7 与当前节点 5 具有相同的令牌。

这里的最佳做法是什么?我是否应该在现有节点上执行 nodetool 移动以添加重新计算的令牌,然后使用正确的配置和令牌引导新节点。还是我添加没有令牌的新节点,一旦引导,nodetool 从第二个节点开始在所有添加新计算的令牌的节点上移动(因为第一个节点始终为 0 与 RandomPartitioner)。

我读了很多资料,但似乎找不到涵盖这种可能性的场景。而且我不能添加超过 3 个节点,长篇大论......

任何帮助都得到了极大的帮助!

【问题讨论】:

标签: cassandra cassandra-3.0


【解决方案1】:

您需要为整个集群重新计算令牌并将新令牌分配给现有节点。详细说明可以找到here。由于您正在为整个集群重新计算,因此您不应该遇到您所说的问题。

我认为最好的解决方案是add a new DC,在那里您可以使用 vnodes 和 Murmur3。复制数据并将所有客户端移至新 DC 后,您可以decommission the old DC

【讨论】:

  • 感谢您的回复。不幸的是,由于许多我不会让你厌烦的因素,迁移到新的 DC 是不可能的。只要我可以先将重新计算的令牌添加到现有节点,然后为新计算的 9 节点集群添加具有正确令牌的新节点,那就完美了。谢谢!
  • 我找到了您发布的链接,但这表示首先添加新节点,使用我新计算的令牌我无法做到没有令牌冲突。一个下午寻找在生产系统中遇到过这种情况的人是徒劳的。他们要么不存在,要么死于压力。 ?
  • 我可能遗漏了一些东西,所以如果我错了,请纠正我。我找到了这个link。您有六个节点,因此您的令牌应该是六个节点的令牌。您将移至九个,因此根据说明您将更改现有的 initial_token 值以匹配九个节点的值。然后使用剩余的初始令牌添加新节点。在引导之后,您将进行一次移动(在前六个节点上,一次一个节点),然后在整个集群上进行清理(一次一个节点)。
  • 嗨,好吧,我想我可能忘记了一些重要信息。我们使用RandomPartitioner,而不是murmur3partitioner所以我的令牌肆虐是这样的:0 28356863910078205288614550619314017621 56713727820156410577229101238628035242 85070591730234615865843651857942052863 113427455640312821154458202477256070484 141784319550391026443072753096570088105 SPAN>
  • 使用9个节点它将是这样的:0 18904575940052136859076367079542678414 37809151880104273718152734159085356828 56713727820156410577229101238628035242 75618303760208547436305468318170713656 94522879700260684295381835397713392070 113427455640312821154458202477256070484
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2021-06-21
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多