我们在6个EC2节点中安装了cassandra 3.9。其中一个节点由于某些原因而死亡,并在nodetool状态中显示DN状态。所以我试图根据这里提供的说明替换节点。
http://cassandra.apache.org/doc/latest/operating/topo_changes.html#replacing-a-dead-node
在启动cassandra时使用-Dcassandra.replace_address和-Dcassandra.replace_address_first_boot。但是,这似乎不起作用。
我收到错误
java.lang.RuntimeException: Host ID collision between active endpoint
我尝试使用nodetool remove删除节点,然后再次尝试。但是,无论我尝试过什么似乎都是徒劳的。
机器不是种子节点。我想直接启动它而不使用替换,但肯定想知道替换不工作的原因。
答案 0 :(得分:0)
我同意,你肯定需要删除问题节点。
我尝试使用nodetool remove删除节点,然后再次尝试。但是,无论我尝试过什么似乎都是徒劳的。
有时nodetool removenode
似乎什么都不做甚至挂起。在这一点上,我建议如下:
$ nodetool removenode status
$ nodetool removenode force
一旦该节点消失,请尝试再次替换它。请注意,如果IP相同,您可能仍需要使用cassandra-env.sh中的replace_address
行。