【问题标题】:Cassandra : Replaced Node Shows In Nodetool GossipInfo And Nodetool StatusCassandra:Nodetool GossipInfo 和 Nodetool 状态中的替换节点显示
【发布时间】:2018-12-28 06:05:14
【问题描述】:

我们使用的是 Cassandra 3.9.0。最近我们在 1 个节点上遇到了一些麻烦。当磁盘使用率达到 100% 时,此节点崩溃。

根据 Datastax 提供的以下说明,我们正在考虑用新节点替换节点的一种方法。 https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsReplaceNode.html

在测试环境中完成替换后,当我们从新节点执行 nodetool status 时,旧节点不会出现。但是,当从其他节点执行时,会出现旧的死节点。类似地,当 nodetool gossipinfo 在新入节点以外的现有节点中执行时,会找到旧节点的引用。

如下图,我们将a2替换为a4

Status=Up/Down
/ State=Normal/Leaving/Joining/Moving
--  Address     Load  Tokens  Owns(effective)  Host ID  Rack
UN  x.x.x.a1  4.52 GiB   256      72.0%       HOSTID1  rack1
DN  x.x.x.a2  4.56 GiB   256      77.5%       null     rack1
UN  x.x.x.a3  4.33 GiB   256      76.9%       HOSTID3  rack1
UN  x.x.x.a4  5.59 GiB   256      73.6%       HOSTID4  rack1

当节点工具状态从作为替换节点的新传入节点运行时,我们得到如下结果。

UN  x.x.x.a1  4.52 GiB   256      100.0%    HOSTID1  rack1
UN  x.x.x.a3  4.33 GiB   256      100.0%    HOSTID3  rack1
UN  x.x.x.a4  5.59 GiB   256      100.0%    HOSTID4  rack1

有没有推荐的方法来解决这种情况?

【问题讨论】:

    标签: cassandra nodetool gossip


    【解决方案1】:

    该文档页面概述了一个与我用来替换节点的过程略有不同的过程,并且似乎没有提到运行nodetool decommissionnodetool removenode。我不想对您的集群做出任何假设(例如,您可能是多 DC),但我相信您必须运行这些命令之一才能让集群从拓扑中删除死节点。

    由于听起来您已经终止了运行“死节点”的实例,因此您将无法从中运行nodetool decommission。相反,我建议在另一个节点上运行,该节点仍将其视为集群的一部分,并运行nodetool removenode。该命令将死节点的UUID作为参数,所以可以通过nodetool status查找到传入。

    该命令运行时间较长,因此我建议在 screentmux 会话中运行它。您可以通过运行nodetool removenode -- status 来检查进度。该命令会将死节点拥有所有权的令牌重新分配给集群中的其他节点。

    编辑只是想澄清一下,我在您发布的文档中概述的过程与我自己的不同,我指的是使用-Dcassandra.replace_address=address_of_dead_node 选项运行新节点。在任何情况下,如果节点已死亡,并且无法重新加入集群,则在其 UUID 上运行 nodetool removenode 并没有什么坏处。

    【讨论】:

    • 在尝试nodetool removenode 之前检查nodetool gossipinfo 是值得的。您可能会发现替换节点与死节点具有相同的 UUID,在这种情况下,nodetool removenode 将失败,并显示一个有用的错误信息。如果是这种情况(您的节点已关闭,它不存在,并且新节点正在使用 UUID,因此无法删除),您可能需要使用不安全的暗杀操作。见这里:stackoverflow.com/questions/35751921/…
    【解决方案2】:

    如果该节点上一切正常,您应该尝试替换同一节点的另一个选项。我的意思是在这种情况下自己的节点替换没有数据范围移动,它将具有相同的范围,并将根据令牌范围从其他节点流式传输数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 2020-02-17
      • 2015-12-22
      • 1970-01-01
      • 2015-07-07
      • 2020-05-29
      相关资源
      最近更新 更多