【问题标题】:How to add a decommissioned node in cassandra?如何在 cassandra 中添加退役节点?
【发布时间】:2018-01-11 15:49:42
【问题描述】:

我刚刚做了 nodetool decommission 并且它删除了节点,我正在尝试将它重新添加,所以我再次启动了 cassandra(decommissioned node),但它似乎没有加入集群?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    其他节点会记住您停用的主机 ID 不应再是集群的一部分,并将拒绝与其通信。

    所以如果你想让那台机器重新加入集群,你必须让它看起来像一个新的空节点,以便剩余的节点让它重新加入。最简单的方法是清除退役节点上的所有数据,以便它为自己生成一个新的主机 ID。然后它应该能够重新加入。

    要清除旧数据,请执行以下操作:

    在节点上停止 Cassandra,然后:

    rm -r <the commitlog_directory specified in cassandra.yaml>
    rm -r <the data_file_directories specified in cassandra.yaml>
    rm <the contents of the saved_caches_directory specified in cassandra.yaml>
    rm <old logfiles in /var/log/cassandra/>
    

    然后重启 Cassandra 服务

    【讨论】:

      【解决方案2】:

      首先停止退役节点上的 cassandra 并使用以下命令启动它:

      $ sudo cassandra -Dcassandra.override_decommission=true

      它将再次加入集群。

      【讨论】:

      • 这真的有用吗?接受的答案解释了为什么这还不够......
      【解决方案3】:

      您无法使用 decommission 命令重新加入节点。基本上发生的事情是您从集群中删除了节点并且重新分配了令牌。您需要重新初始化该节点并让它加入集群。执行 decommission 时是否让节点完成流式传输数据?

      【讨论】:

      • 是的,退役成功。如何重新初始化该节点?
      • 我认为重新初始化只是再次启动该 cassandra 节点。没有?
      • 你能分享一下你再次启动节点时遇到的错误消息吗?
      猜你喜欢
      • 2021-05-15
      • 2018-04-08
      • 2018-11-21
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      相关资源
      最近更新 更多