现在收到错误“message =”无法达到一致性级别ONE“info = {'required_replicas':1,'alive_replicas':0,'consistency':'ONE'}”

时间:2016-03-31 19:24:08

标签: cassandra cassandra-2.0 cql cql3

Cassandra版本:dsc-cassandra-2.1.9

有3个节点,其中一个节点长时间停机。把它带回来并解除它。然后做了一个nodetool removenode。

当我尝试进行cql查询时,出现上述错误。

最初认为这可能是因为复制策略是SimpleStrategy。 ALTER KEYSPACE history WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'dc1' : 2};

也是如此

并更改了endpoint_snitch: GossipingPropertyFileSnitch而不是SimpleSnitch

在两个节点上执行了nodetool修复并重新启动了cassandra服务

但问题仍然存在。我该怎么办?

编辑1:机器A的Nodetool状态

--  Address         Load       Tokens  Owns    Host ID                               Rack
UN  192.168.99.xxx  19.8 GB    256     ?       xxxxxxxx-xxxx-xxx-xxxx-xxxxx4ea  RAC1
UN  192.168.99.xxx  18.79 GB   256     ?       xxxxxxxx-xxxx-xxx-xxxx-xxxxxx15  RAC1

机器B的nodetool状态输出

--  Address         Load       Tokens  Owns    Host ID                               Rack
UN  192.168.99.xxx  19.8 GB    256     ?       xxxxxxxx-xxxx-xxx-xxxx-xxxxxxxx4ea  RAC1
UN  192.168.99.xxx  18.79 GB   256     ?       xxxxxxxx-xxxx-xxx-xxxx-xxxxxxxxf15  RAC1

1 个答案:

答案 0 :(得分:0)

奇怪的是,在列拥有下你没有%,只有?。过去,当我引导新的C *集群并使用SimpleStrategy和SimpleSnitch时,同样的问题也发生在我身上。我确实喜欢你一个ALTER KEYSPACE切换到NetworkTopology和GossipingPropertyFileSnitch,但它没有解决我的问题所以我从头开始重建集群(幸运的是我里面没有数据)

如果您在某处备份了数据,只需尝试从头开始重建2个节点。

否则,请考虑在一个节点上备份sstable文件并重建群集并重新放回sstables。小心,因为可能需要重命名某些文件名/文件夹