Теперь получаю сообщение об ошибке = Не удается достичь уровня согласованности ONE info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 'ONE'}

Версия Кассандры: 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: статус Nodetool машины A

--  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

вывод состояния nodetool машины B

--  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

person GenerousJoker    schedule 31.03.2016    source источник
comment
Почему вы сделали removenode после вывода из эксплуатации? Вам нужно только распаковать. Кроме того, было бы полезно вывести состояние запущенного nodetool для обоих оставшихся узлов.   -  person Tyler Hobbs    schedule 31.03.2016
comment
Добавлен вывод состояния выше. Идентификаторы хостов совпадают. Сделал removenode, потому что после списания состояние nodetool все еще показывало списанный узел   -  person GenerousJoker    schedule 31.03.2016


Ответы (1)


Что странно, так это то, что в столбцах Владелец у вас нет %, только ?. Эта же проблема возникала у меня в прошлом, когда я загружал новый кластер C* и использовал SimpleStrategy и SimpleSnitch. Я хотел, чтобы вы ALTER KEYSPACE переключились на NetworkTopology и GossipingPropertyFileSnitch, но это не решило мою проблему, поэтому я перестроил кластер с нуля (к счастью, у меня не было данных внутри)

Если у вас где-то есть резервная копия ваших данных, просто попробуйте перестроить 2 узла с нуля.

В противном случае рассмотрите возможность резервного копирования файлов sstable на одном узле, перестройте кластер и верните sstables обратно. Будьте осторожны, потому что может потребоваться переименование некоторых файлов/папок.

person doanduyhai    schedule 31.03.2016