【发布时间】: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