Cassandra-如何删除死节点

Cassandra-如何删除死节点,cassandra,nodetool,Cassandra,Nodetool,卡桑德拉版本1.2.9。五节点群集,但其中一个节点因硬件故障而停机,且维修/更换ETA未知。我想解除关闭/删除关闭节点(通知会使所有日志混乱)。nodetool removenode似乎很完美,只是它需要一个主机ID。down节点没有主机ID(在状态中列为null): 似乎removetoken不再是nodetool的选项 删除此死区节点的正确方法是什么?问题在于旧版本的cassandra。但是官方的解决方案应该适用于任何版本的卡桑德拉- 其中的步骤基本上是停止集群,删除与对等相关的sstabl

卡桑德拉版本1.2.9。五节点群集,但其中一个节点因硬件故障而停机,且维修/更换ETA未知。我想解除关闭/删除关闭节点(通知会使所有日志混乱)。nodetool removenode似乎很完美,只是它需要一个主机ID。down节点没有主机ID(在状态中列为null):

似乎removetoken不再是nodetool的选项


删除此死区节点的正确方法是什么?

问题在于旧版本的cassandra。但是官方的解决方案应该适用于任何版本的卡桑德拉-


其中的步骤基本上是停止集群,删除与对等相关的sstable,清除gossip状态并重新启动集群;这是有道理的。

我本来想给你一个指向DataStax“替换死节点”文档的链接,但最后一步是做一个
nodetool removenode
,你已经说过这对你不起作用。您是否尝试过查看
nodetool move
?理论上,您可以启动替换节点(初始_令牌设置为死节点的,减去1),然后将其移动到所需的令牌范围。我还没有替换服务器。我试着改掉;此版本中已弃用的。我试着用removenode;但是没有主机ID,所以它失败了。我尝试移动,但没有足够的流媒体源。接下来是一个JMX命令:进入shell模式jmx_invoke-m org.apache.cassandra.net:type=Gossiper-unsafe刺杀端点。该操作失败,出现空指针异常。仍在处理此问题。以下步骤确实有效:-1)在剩余的每个节点上,将-Dcassandra.load\u ring\u state=false添加到cassandra-env.sh文件中的JVM\u OPTS并重新启动。-2) 再次运行nodetool status并确认不需要的节点已消失。-3) 在每个节点上,运行delete from system.peers,其中peer='[ip address of dead node]';通过cqlsh-4)从每个节点上的cassandra-env.sh中删除-Dcassandra.load_ring_state=false并重新启动。