【问题标题】:Adding new node to Cassandra cluster when initial_token is already specified已指定 initial_token 时向 Cassandra 集群添加新节点
【发布时间】:2018-03-08 20:09:30
【问题描述】:

我有一个三节点 Cassandra 集群。每个节点都有包含 256 个令牌的 initial_token 配置参数。

现在我必须添加第四个节点,问题是如何为其计算 initial_token 参数(策略/算法/工具)?

是否可以将 256/4=64 个令牌从每个现有节点移动到新节点?如果发生以下情况会发生什么:

  1. 我将从每个节点的initial_token中取出64个token,并将它们设置在新节点上;
  2. 从原始节点上的配置中删除这些令牌;
  3. 重启集群; (我认为每个原始节点仍将保留移动标记的行)
  4. 为每个迁移的令牌运行“nodetool move”

【问题讨论】:

    标签: cassandra cassandra-3.0


    【解决方案1】:

    您手动设置节点令牌或 C* 计算并分配它们?

    如果 C* 将它们带到节点,您不必担心分配令牌,在新节点开始加入集群之前,范围超过由其他节点计算的新节点拥有的范围并发送到新节点,您很放松为了这份工作!

    您必须考虑的另一个观点是使用单个令牌或 vnode? 两者都不同。

    【讨论】:

    • 我怀疑 C* 之前计算过它们,后来它们在转储恢复期间手动设置或因为其他原因。
    • 当你运行一个集群时,做任何工作将令牌分配给节点吗?
    • 如果实际上你不尝试并且集群状态正常,我们找出它自己计算令牌并将它们分配给节点的C*。毕竟,您有两种方法可以告诉 C* 分配标记。单个令牌和 vnode,尝试 google 那些!
    • 最后,我发现在 C* 第一次启动时使用了 initial_token 参数 - 所以这意味着我启用了 vnodes 并且新节点可以加入环,我可以通过 initial_token 设置放松。跨度>
    猜你喜欢
    • 2015-09-08
    • 2014-05-14
    • 1970-01-01
    • 2018-09-19
    • 2021-12-09
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    相关资源
    最近更新 更多