由于主机ID冲突问题

时间:2016-12-23 01:12:24

标签: cassandra

我们在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删除节点,然后再次尝试。但是,无论我尝试过什么似乎都是徒劳的。

机器不是种子节点。我想直接启动它而不使用替换,但肯定想知道替换不工作的原因。

1 个答案:

答案 0 :(得分:0)

我同意,你肯定需要删除问题节点。

  

我尝试使用nodetool remove删除节点,然后再次尝试。但是,无论我尝试过什么似乎都是徒劳的。

有时nodetool removenode似乎什么都不做甚至挂起。在这一点上,我建议如下:

  1. 执行removenode命令。
  2. 一两分钟后,按 ctrl + c 返回命令提示符。
  3. 验证removenode实际上是在做什么:
  4. $ nodetool removenode status

    1. 使用" force"加快删除过程。命令:
    2. $ nodetool removenode force

      一旦该节点消失,请尝试再次替换它。请注意,如果IP相同,您可能仍需要使用cassandra-env.sh中的replace_address行。