【发布时间】:2018-11-21 19:35:25
【问题描述】:
我希望停用 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
下一步应该如何以更有效的方式停用它?
【问题讨论】:
-
您的日志中有任何内容吗?寻找 /var/log/cassandra/system.log
-
日志说:流:所有会话已完成
-
为什么要在升级之前停用节点?不能原地升级吗?
-
我在升级之前停用节点,因为我希望将节点数据流式传输到其他节点,并且升级后的节点应该得到引导。
标签: cassandra datastax datastax-enterprise cassandra-3.0 nodetool