节点工具退役后,Cassandra节点陷入困境

时间:2018-06-12 11:55:03

标签: cassandra datastax datastax-enterprise cassandra-3.0 nodetool

我希望停用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

以更有效的方式退役的下一步应该是什么?

2 个答案:

答案 0 :(得分:1)

停用节点的另一种方法是停止节点并在另一个活动节点中运行nodetool removenode。这会将令牌范围分配给其他节点,您只需删除已删除节点的数据即可。只要复制因子> 1,就可以使用nodetool removenode,这意味着您的数据也可以在其他节点中使用。在您的情况下,如果要删除多个节点,则它取决于您的复制因子值。

答案 1 :(得分:0)

退役后,如果节点未退役,请运行nodetool assassinate。 它将强制删除该节点。