【问题标题】:Cassandra nodes have different opinions about up/down status and replication. How to fix?Cassandra 节点对 up/down 状态和复制有不同的看法。怎么修?
【发布时间】:2013-11-17 22:28:59
【问题描述】:

我有一个 Cassandra 2.0.1 集群,其中包含三个节点和复制因子为 3 的主键空间。由于集群中额外的第四个节点意外配置错误,我尝试先使用不必要的“nodetool”修复它decommission”(在节点 db2 上)在做正确的“nodetool removenode”之前。

现在,运行停用的节点 db2 似乎看到另一个节点的状态为“Down”,即使其他人认为一切正常。此外,当我在所有节点上运行“nodetool ring”时,db1 给出“副本:2”,其中 db2 和 db3 在列表顶部有“副本:3”。

keyspace 包含我不想丢失的数据,并且集群无法完全关闭,因为一直在插入新数据。在不危及现有数据和新数据的情况下解决问题的好方法是什么?

下面的混淆节点工具状态输出。

[db1 ~]# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens  Owns (effective)  Host ID                               Rack
UN  xx.xx.xx.99    30.38 MB   256     100.0%            cccccccc-cccc-cccc-cccc-cccccccccccc  rack1
UN  xx.xx.xx.122   28.93 MB   256     100.0%            aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa  rack1
UN  xx.xx.xx.123   29.59 MB   256     100.0%            bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb  rack1

[db2 ~]# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens  Owns (effective)  Host ID                               Rack
DN  xx.xx.xx.122   28.93 MB   256     100.0%            aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa  rack1
UN  xx.xx.xx.99    30.38 MB   256     100.0%            cccccccc-cccc-cccc-cccc-cccccccccccc  rack1
UN  xx.xx.xx.123   29.59 MB   256     100.0%            bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb  rack1

[db3 ~]# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens  Owns (effective)  Host ID                               Rack
UN  xx.xx.xx.122   28.93 MB   256     100.0%            aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa  rack1
UN  xx.xx.xx.99    30.38 MB   256     100.0%            cccccccc-cccc-cccc-cccc-cccccccccccc  rack1
UN  xx.xx.xx.123   29.59 MB   256     100.0%            bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb  rack1

【问题讨论】:

  • 看起来问题自己神奇地解决了。有问题的节点遇到了一些(可能不相关的)硬盘问题,必须重新启动,并且确实重播了一堆提交日志,也许还有其他一些自动修复的东西。但这一切背后的原因仍不清楚,即使症状消失了。
  • 我们在生产中面临同样的问题。我们的集群中有 10 个节点。当我运行 nodetool status 时,一个节点显示为 DN,但是当我再次运行 nodetool status 时,同一节点显示为 UN。这个问题是一致的。可能的原因是什么?我确信这个问题不是由于硬盘问题。

标签: cassandra cluster-computing nodetool cassandra-2.0


【解决方案1】:

Aaron Morton 详细描述了他如何debugged a similar problem。您应该检查集群中的 gossip 状态。

  • 检查nodetool gossipinfo的状态
  • 启用跟踪记录:

    log4j.logger.org.apache.cassandra.gms.Gossiper=TRACE log4j.logger.org.apache.cassandra.gms.FailureDetector=TRACE

希望您可以从中更好地了解集群中发生了什么。

【讨论】:

  • 谢谢,这给了一些提示如何前进。但还没有解决问题,因为它与 Aaron 的不完全相同,它还涉及 Cassandra 1.x,因此并非完全适用于 2.0。
猜你喜欢
  • 2018-06-06
  • 1970-01-01
  • 2019-05-29
  • 2017-10-27
  • 1970-01-01
  • 2019-08-29
  • 2015-05-20
  • 2012-08-06
  • 2019-06-23
相关资源
最近更新 更多