- 我在EC2上有12个节点的cassandra集群。
- 由于某些故障,我们完全丢失了一个节点。我的意思是这台机器不再存在。
- 因此,我创建了新的EC2实例,它具有与死节点不同的ip和相同的令牌,并且我还有该节点上的数据备份,所以它工作正常
- 但问题是死节点ip仍然在描述集群中显示为不可访问的节点。
- 作为该节点(EC2实例)不存在了,我不能用nodetool退役或nodetool disablegossip
我怎样才能摆脱这种不可达节点的如何从Cassandra集群中删除死亡节点?
我怎样才能摆脱这种不可达节点的如何从Cassandra集群中删除死亡节点?
常当您要将要设置新节点的令牌的节点替换为(failure node's token) - 1
并让其启动时。从1.0开始,现在有一个标志可以在启动时指定到replace a dead node:“cassandra.replace_token =”。
既然你已经添加了新的节点与同样有一个额外的步骤:
(failure node's token) - 1
使用从节点组成一个nodetool move
nodetool removetoken <failed node's token>
上运行nodetool cleanup
这些基本上pre 1.0 instructions用于替换带有附加令牌的死节点移动。
我有同样的问题,我解决了它与removenode
,它不需要您查找和更改节点令牌。
首先,得到节点UUID:
nodetool status
DN 192.168.56.201 ? 256 13.1% 4fa4d101-d8d2-4de6-9ad7-a487e165c4ac r1
DN 192.168.56.202 ? 256 12.6% e11d219a-0b65-461e-babc-6485343568f8 r1
UN 192.168.2.91 156.04 KB 256 12.4% e1a33ed4-d613-47a6-8b3b-325650a2bbd4 RAC1
UN 192.168.2.92 156.22 KB 256 13.6% 3a4a086c-36a6-4d69-8b61-864ff37d03c9 RAC1
UN 192.168.2.93 149.6 KB 256 11.3% 20decc72-8d0a-4c3b-8804-cc8bc98fa9e8 RAC1
正如你可以看到.201和.202死亡,在不同的网络上。如果没有适当的退役和重新调试,这些更改为.91和.92。我正在安装网络,并提出了一些错误......
二,删除.201用下面的命令:
nodetool removenode 4fa4d101-d8d2-4de6-9ad7-a487e165c4ac
(在旧版本中,它是nodetool删除...)
但与nodetool removetoken ...
一样,它会阻止...(请参阅psandord答案中的samarth评论)但是,它有副作用,它会将UUID放入要删除的节点列表中。所以接下来我们可以强制删除:
nodetool removenode force
(在旧版本中它是nodetool删除...)
现在节点接受它告诉我,这是消除无效项命令:
RemovalStatus:删除令牌(-9136982325337481102)。等待[/192.168.2.91,/192.168.2.92]复制确认。
我们也看到它与其他两个节点通信,因此需要一点时间,但它仍然很快。
下一个nodetool status
不显示.201节点。我再重复.202,现在状态很干净。
之后,你可能还需要运行一个清理在psanford答复中提到:
nodetool cleanup
清理工作应在所有节点逐个运行,以确保变化充分考虑帐户。
你好,请问我有问题。 nodetool状态返回只有一个节点(与IP @ 127.0.0.1)状态=向上/向下 | /州=正常/离开/加入/移动 - 地址加载令牌旗下拥有(有效)主机ID机架 联合国127.0.0.1 83.05 KB 256 100.0%460ddcd9-1ee8-48b8-A618-c076056aad07 RACK1 – researcher 2015-03-17 10:36:48
我该怎么办更改IP地址?以及如何获得环上所有节点的列表?非常感谢。最好的祝福。 – researcher 2015-03-17 10:38:40
搜索名为cassandra.yaml的文件并在文件内搜索名为seed_provider的条目。这有IP地址的条目。然后查看cassandra-rackdc.properties和cassandra-topology.properties文件。还有一个cassandra-topology.yaml,我认为它在新版本中不再使用。 – 2015-03-17 22:12:24
谢谢Psanford。但在我的情况下,我已经启动了与死节点具有相同标记的新节点。现在环状态良好且平衡。但是在描述集群中,它将死节点显示为无法访问。在大多数情况下它仍然很好,但是,我们使用sstableloader加载数据,而无法访问的节点sstableloader不起作用。可能的解决方案是什么? – samarth 2011-12-22 05:37:22
您需要清除环中旧节点的知识。你可以用'nodetool removetoken'来做到这一点。你的问题是,也会删除替换节点。因此,在执行'removetoken'之前,需要将替换节点的标记移动到标记-1。 – psanford 2011-12-22 16:50:51
我已经尝试了您建议的解决方案。我们已成功移动新节点。但是,在删除死亡节点期间,它陷入了困境:“RemovalStatus:删除令牌(62676456546693435176060154681903071729)。从等待复制确认[卡桑德拉-1/10.101.101.01' – samarth 2011-12-26 10:00:28