【问题标题】:Fully removing a decommissioned Cassandra node完全删除退役的 Cassandra 节点
【发布时间】:2014-10-08 23:08:56
【问题描述】:

运行 Cassandra 1.0,我将环从 5 个节点缩小到 4 个。为此,我在要删除的节点上运行 nodetool decommission,然后在该主机上停止 cassandra 并使用 nodetool move 和 @ 987654323@ 更新剩余 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     

更新: 我尝试在节点 B 上使用 nodetool removetoken 删除该节点,该节点仍然声称节点 C 在环中。该命令运行了 5 个小时,似乎没有做任何事情。唯一的变化是,当我在节点 B 上运行 nodetool ring 时,节点 C 的状态现在是“离开”。

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    我可以使用nodetool removetoken 删除停用的节点,但我必须使用force 选项。

    这是我的命令的输出:

    iowalker:~$ nodetool -h `hostname` removetoken 57981914123659253974350789668785134662
    
    <waited 5 hours, the node was still there>
    
    iowalker:~$ nodetool -h `hostname` removetoken status
    RemovalStatus: Removing token (57981914123659253974350789668785134662). Waiting for replication confirmation from [/xx.xxx.xxx.xx,/xx.x.xxx.xx,/xx.xx.xx.xxx].
    iowalker:~$ nodetool -h `hostname` removetoken force
    RemovalStatus: Removing token (57981914123659253974350789668785134662). Waiting for replication confirmation from [/xx.xxx.xxx.xx,/xx.x.xxx.xx,/xx.xx.xx.xxx].
    iowalker:~$ nodetool -h `hostname` removetoken status
    RemovalStatus: No token removals in process.
    

    【讨论】:

      【解决方案2】:

      使用 Cassandra 2.0,您需要在要删除的节点上使用 sh nodetool decommission。 在您的情况下,检查您是否已删除 cassandra-topology.properties 中的条目

      【讨论】:

        猜你喜欢
        • 2021-05-15
        • 2018-04-08
        • 2018-11-21
        • 1970-01-01
        • 2017-05-19
        • 1970-01-01
        • 1970-01-01
        • 2015-07-16
        • 1970-01-01
        相关资源
        最近更新 更多