我有一个几乎空的小集群。通常nodetool removenode
完成大约10秒。但是,我目前正在进行节点删除,这需要花费10分钟的时间,并且似乎没有取得任何进展。删除节点的其他请求将被拒绝,因为正在进行删除。我该如何解决这个问题?作为参考,这是nodetool status
的输出:
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
DL 192.168.12.207 152.14 KB 256 32.2% 683d8351-c625-4d7f-99cc-61f6b73b0c56 rack1
UN 192.168.12.205 215.21 KB 256 37.2% b66d5fff-ef1d-4fbf-a49a-43709df99a0c rack1
UN 192.168.12.208 148.09 KB 256 30.6% 39b54771-59b8-49f7-8db8-9cf4523d6c8d rack1
此外,cassandra未在主机207(离开主机)上运行,但正在其他两台主机上运行。
编辑:似乎至少有一个令牌等待复制:
$ nodetool removenode status
RemovalStatus: Removing token (-9037887679483580088). Waiting for replication confirmation from [/192.168.12.205].
答案 0 :(得分:12)
不知道哪个版本的Cassandra是有问题的版本。但是,如果 nodetool removenode 无效,根据Apache Cassandra Wiki,您应该尝试以下操作:
的removeNode
删除不再存在的节点,完成两个 步骤进行:
bin/nodetool removenode <UUID> bin/nodetool removenode force
如果连接到该UUID的计算机是第一个命令将永远阻止 物理删除(或不再运行Cassandra)。只需点击 在运行第二个命令之前的一两秒后按Ctrl-C。 显然,如果可能的话,最好首先停用一个节点 你可能会丢失一些数据。
“bin / nodetool status”命令显示节点的UUID。
希望它有所帮助。
答案 1 :(得分:0)
您可能遇到了已知的错误CASSANDRA-6542