我有一个由三个节点组成的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
答案 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
希望您可以更好地了解群集中的情况。