Cassandra节点对上/下状态和复制有不同的看法。怎么修?

时间:2013-11-06 15:37:50

标签: cassandra cluster-computing nodetool cassandra-2.0

我有一个由三个节点组成的Cassandra 2.0.1群集,以及具有复制因子3的主键空间。由于群集中一个额外的第四个节点意外配置错误,我尝试先使用不必要的“nodetool”修复它在执行“nodetool removenode”的正确操作之前退出“(在节点db2上)。

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

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

下面是模糊的nodetool状态输出。

[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

1 个答案:

答案 0 :(得分:3)

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

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

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

希望您可以更好地了解群集中的情况。