【发布时间】:2018-01-11 15:49:42
【问题描述】:
我刚刚做了 nodetool decommission 并且它删除了节点,我正在尝试将它重新添加,所以我再次启动了 cassandra(decommissioned node),但它似乎没有加入集群?
【问题讨论】:
标签: cassandra
我刚刚做了 nodetool decommission 并且它删除了节点,我正在尝试将它重新添加,所以我再次启动了 cassandra(decommissioned node),但它似乎没有加入集群?
【问题讨论】:
标签: cassandra
其他节点会记住您停用的主机 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 服务
【讨论】:
首先停止退役节点上的 cassandra 并使用以下命令启动它:
$ sudo cassandra -Dcassandra.override_decommission=true
它将再次加入集群。
【讨论】:
您无法使用 decommission 命令重新加入节点。基本上发生的事情是您从集群中删除了节点并且重新分配了令牌。您需要重新初始化该节点并让它加入集群。执行 decommission 时是否让节点完成流式传输数据?
【讨论】: