6
Cassandra 1.2.9版。五节点集群,但其中一个节点因硬件故障而关闭,修复/更换ETA未知。我想解除/删除下来的节点(通知混乱所有日志)。 nodetool removenode似乎是完美的,除了它需要一个主机ID。下行节点没有主机ID(状态为null):Cassandra - 如何删除死亡节点
看来removetoken不再是nodetool的选项。
什么是删除这个死亡节点的正确方法?
Cassandra 1.2.9版。五节点集群,但其中一个节点因硬件故障而关闭,修复/更换ETA未知。我想解除/删除下来的节点(通知混乱所有日志)。 nodetool removenode似乎是完美的,除了它需要一个主机ID。下行节点没有主机ID(状态为null):Cassandra - 如何删除死亡节点
看来removetoken不再是nodetool的选项。
什么是删除这个死亡节点的正确方法?
问题是为卡桑德拉的旧版本。但官方的解决方案应该适用于任何版本的cassandra - https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsGossipPurge.html
那里的步骤基本上告诉停止集群,删除与对等相关的sstables,清除八卦状态并重新启动集群;这是有道理的。
我打算给你一个DataStax的“替换死节点”文档的链接,但最后一步是执行一个'nodetool removenode',你所说的将不适合你。你有没有试过看'nodetool move'?从理论上讲,你可以调出替换节点(initial_token设置为死节点,减1),然后将其移动到所需的令牌范围。 – Aaron
我还没有替换服务器。我尝试了removetoken;在此版本中已弃用。我试过removenode;但没有主机ID,因此失败。我尝试过移动,但没有足够的流媒体源。接下来是一个JMX命令:进入shell模式。 %jmx_invoke -m org.apache.cassandra.net:type=Gossiper unsafeAssassinateEndpoint。空指针异常失败。仍在努力。 –
以下步骤DID工作: - 1)在剩余的每个节点上,将-Dcassandra.load_ring_state = false添加到cassandra-env.sh文件中的JVM_OPTS并重新启动。 - 2)再次运行nodetool状态并确认不需要的节点已经消失。 - 3)在每个节点上,从system.peers执行delete,其中peer ='[死亡节点的IP地址]'; 4)从每个节点上的cassandra-env.sh中删除-Dcassandra.load_ring_state = false并重新启动。 –