【问题标题】:Cassandra node is getting stuck after nodetool decommission在 nodetool 退役后 Cassandra 节点卡住了
【发布时间】:2018-11-21 19:35:25
【问题描述】:

我希望停用 Cassandra 节点,因为节点需要将版本从 3.9 升级到 3.11。我登录到特定节点并执行 nodetool decommission 命令。

大多数节点在运行的几个小时内就会从集群中退役,但在某些情况下,退役会卡住并且节点没有从集群中移除,状态/状态:UL。最初,数据通过不同的节点流式传输,一切似乎都运行良好,没有错误日志,但经过数小时后,它仍处于相同状态。

我打算通过nodetool netstatsnodetool 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


【解决方案1】:

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

【讨论】:

  • removenode 仅应在decommission 不起作用的情况下使用。另外不要在退役前耗尽节点。即使进程正在运行,停用实际上也会禁用节点。另外不要同时停用多个节点。
  • @CarlosRolo,感谢您的纠正,您不运行 nodetool drain 是对的。
  • 另外,如果您使用 nodetool removenode ,您将需要您要删除的节点的主机 ID。您可以通过运行 nodetool status 并在 removenode 选项后复制/粘贴您希望删除的节点的主机 ID 来获得它。
  • 我已经执行了两次退役过程,第二次我从所有服务器种子属性中删除了退役节点。即使这样,它也正在接收数据并且 UL 状态在那里。请建议。 stackoverflow.com/questions/66152353/…
【解决方案2】:

如果节点未退役,则在退役后运行 nodetool 暗杀。 它将强制删除节点。

【讨论】:

    【解决方案3】:

    根据 Datastax 支持

    使用这些步骤使节点退役。

    第 1 步 - 在节点上重新启动 Cassandra/DSE。

    第 2 步 - 再次运行 nodetool decommission,该节点应按预期从集群中删除。

    https://support.datastax.com/s/article/Node-stuck-in-LEAVING-state-after-being-decommissioned

    【讨论】:

      猜你喜欢
      • 2017-05-19
      • 2021-05-15
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 2018-10-23
      • 1970-01-01
      相关资源
      最近更新 更多