【问题标题】:nodetool removenode stuck during removalnodetool removenode 在删除期间卡住了
【发布时间】:2016-06-02 04:12:09
【问题描述】:

我有一个几乎是空的小集群。通常nodetool removenode 会在 10 秒左右完成。但是,我目前正在删除一个节点,这需要 10 分钟,而且似乎没有任何进展。移除节点的附加请求被拒绝,因为已经有移除正在进行中。我该如何解决这个问题?作为参考,这里是nodetool status的输出:

Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns   Host ID                               Rack
DL  192.168.12.207  152.14 KB  256     32.2%  683d8351-c625-4d7f-99cc-61f6b73b0c56  rack1
UN  192.168.12.205  215.21 KB  256     37.2%  b66d5fff-ef1d-4fbf-a49a-43709df99a0c  rack1
UN  192.168.12.208  148.09 KB  256     30.6%  39b54771-59b8-49f7-8db8-9cf4523d6c8d  rack1

此外,cassandra 不在主机 207(离开主机)上运行,而是在其他两台主机上运行。

编辑:似乎至少有一个令牌被卡住等待复制:

$ nodetool removenode status
RemovalStatus: Removing token (-9037887679483580088). Waiting for replication confirmation from [/192.168.12.205].

【问题讨论】:

  • 您是否先执行了 nodetool 修复?
  • 不,这不是可选的吗?尽管在没有遇到这个问题的情况下没有运行 nodetool repair ,但过去这对我来说已经工作了很多次。为什么这会导致零星的失败?
  • 顺便说一句,这些instructions,建议运行repair,然后是decommission,然后是removenode,看起来确实不正确。运行nodetool decommission 本身似乎删除了节点,留下removenode 没有实际意义。我选择使用不同的步骤顺序,只涉及运行removenode,这也需要首先将 cassandra 放到机器上。
  • 我尝试运行nodetool repair,它似乎阻塞了很长时间(在我为几乎空的新初始化集群终止修复之前大约 10 分钟,只添加了一个模式),所以如果可能的话,我想找到一个不涉及nodetool repair 的可靠解决方案。

标签: cassandra


【解决方案1】:

不知道哪个版本的 Cassandra 有问题。但是,如果 nodetool removenode 不起作用,根据Apache Cassandra Wiki,您应该尝试以下操作:

删除节点

删除物理上不再存在的节点分两步完成 步骤:

  bin/nodetool removenode <UUID> 

  bin/nodetool removenode force

如果连接到该 UUID 的计算机是 物理删除(或不再运行 Cassandra)。只需点击 在运行第二个命令之前的一两秒后按 Ctrl-C。 显然,如果可能,最好先停用一个节点,或者 您可能会丢失一些数据。

“bin/nodetool status”命令显示节点的 UUID。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    您可能遇到了一个已知错误,CASSANDRA-6542

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 2023-01-11
      • 2018-05-05
      相关资源
      最近更新 更多