我有一个几乎空的小集群.通常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
Run Code Online (Sandbox Code Playgroud)
此外,cassandra不在主机207(离开主机)上运行,而是在另外两台主机上运行.
编辑:似乎至少有一个令牌等待复制:
$ nodetool removenode status
RemovalStatus: Removing token (-9037887679483580088). Waiting for replication confirmation from [/192.168.12.205].
Run Code Online (Sandbox Code Playgroud)
jul*_*ccr 13
不知道哪个版本的Cassandra是有问题的那个版本.但是,如果nodetool removenode不起作用,根据Apache Cassandra Wiki,你应该尝试以下方法:
的removeNode
删除不再存在的节点分两步完成:
Run Code Online (Sandbox Code Playgroud)bin/nodetool removenode <UUID> bin/nodetool removenode force如果连接到该UUID的计算机被物理移除(或者不再运行Cassandra),则第一个命令将永远阻止.在运行第二个命令之前,只需在一两秒后单击Ctrl-C.显然,如果可能的话,最好首先停用节点,否则可能会丢失一些数据.
"bin/nodetool status"命令显示节点的UUID.
希望能帮助到你 .