我希望停用Cassandra节点,因为节点需要从3.9升级到3.11版本。我登录到特定节点并执行 nodetool decommission 命令。
大多数节点在运行后的几个小时内从群集中退役,但在某些情况下,退役会卡住并且节点不会从群集中移除,状态/状态:UL。最初,数据在不同的节点上流式传输,一切似乎都运行良好,没有错误日志,但经过几个小时,它就处于同一状态。
我打算通过输出低于的 nodetool netstats 和 nodetool status 验证停用是否成功。在这两个地方,它都说LEAVING
nodetool netstats
Mode: LEAVING
Not sending any streams.
Read Repair Statistics:
Attempted: 62537724
Mismatch (Blocking): 921768
Mismatch (Background): 746828
Pool Name Active Pending Completed Dropped
Large messages n/a 0 44148788 0
Small messages n/a 1 238868718622 143
Gossip messages n/a 0 17713062 0
nodetool status
Datacenter: XXXX
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UL x.x.x.x 554.42 GiB 256 20.2% b2d0fe01-a0ce-4f41-b410-0dcf4aa7f5ef rack1
重新启动Cassandra服务后再次进入UP / NORMAL状态,我重复相同的过程以停用。对于某些节点,它在一次尝试中退役,但对于其他节点,它需要多次尝试才能成功退役。
Machine Information: Linux 4.4.0-101-generic x86_64 GNU/Linux
Average Load on each node : ~500GB
以更有效的方式退役的下一步应该是什么?
答案 0 :(得分:1)
停用节点的另一种方法是停止节点并在另一个活动节点中运行nodetool removenode。这会将令牌范围分配给其他节点,您只需删除已删除节点的数据即可。只要复制因子> 1,就可以使用nodetool removenode,这意味着您的数据也可以在其他节点中使用。在您的情况下,如果要删除多个节点,则它取决于您的复制因子值。
答案 1 :(得分:0)
退役后,如果节点未退役,请运行nodetool assassinate。 它将强制删除该节点。