运行 Cassandra 1.0,我将环从 5 个节点缩小到 4 个。为此,我在nodetool decommission
要删除的节点上运行,然后在该主机上停止 cassandra 并使用nodetool move
并将nodetool cleanup
剩余 4 个节点上的令牌更新为重新平衡集群。
我的种子节点是 A 和 B。我删除的节点是 C。
这似乎可以正常工作 6-7 天,但现在我的四个节点之一认为退役的节点仍然是环的一部分。
为什么会发生这种情况,从环中完全移除退役节点的正确方法是什么?
nodetool ring
这是仍然认为退役节点是环的一部分的一个节点上的输出:
Address DC Rack Status State Load Owns Token
127605887595351923798765477786913079296
xx.x.xxx.xx datacenter1 rack1 Up Normal 616.17 MB 25.00% 0
xx.xxx.xxx.xxx datacenter1 rack1 Up Normal 1.17 GB 25.00% 42535295865117307932921825928971026432
xx.xxx.xx.xxx datacenter1 rack1 Down Normal ? 9.08% 57981914123659253974350789668785134662
xx.xx.xx.xxx datacenter1 rack1 Up Normal 531.99 MB 15.92% 85070591730234615865843651857942052864
xx.xxx.xxx.xx datacenter1 rack1 Up Normal 659.92 MB 25.00% 127605887595351923798765477786913079296
这是nodetool ring
其他 3 个节点上的输出:
Address DC Rack Status State Load Owns Token
127605887595351923798765477786913079296
xx.x.xxx.xx datacenter1 rack1 Up Normal 616.17 MB 25.00% 0
xx.xxx.xxx.xxx datacenter1 rack1 Up Normal 1.17 GB 25.00% 42535295865117307932921825928971026432
xx.xx.xx.xxx datacenter1 rack1 Up Normal 531.99 MB 25.00% 85070591730234615865843651857942052864
xx.xxx.xxx.xx datacenter1 rack1 Up Normal 659.92 MB 25.00% 127605887595351923798765477786913079296
更新:
我尝试使用nodetool removetoken
节点 B 删除节点,该节点仍然声称节点 C 在环中。该命令运行了 5 个小时,似乎没有做任何事情。唯一的变化是,当我nodetool ring
在节点 B 上运行时,节点 C 的状态现在是“离开”。