У меня есть три центра обработки данных cassandra с пространством клавиш, которое выглядит следующим образом:
CREATE KEYSPACE allotments WITH replication = {'class': 'NetworkTopologyStrategy', 'hk1': '3', 'hk2': '3', 'hk3': '3'} AND durable_writes = false;
Я недавно установил последние кластеры, HK2 и HK3, и для auto_bootstrap было установлено значение true (комментируя строку).
Затем я приступил к выполнению команды перестроения на всех узлах новых центров обработки данных (HK2 и HK3), используя исходный центр обработки данных (HK1) в качестве источника:
nodetool rebuild -- hk1
Однако проблема, с которой я сталкиваюсь, заключается в том, что в HK2, похоже, отсутствуют данные, и я не могу выяснить, почему или устранить проблему.
На HK1 (правильные данные):
cqlsh> use allotments;
cqlsh:allotments> select count(*) from freesale_allotments;
count
-------
22035
(1 rows)
Warnings :
Aggregation query used without partition key
cqlsh:allotments>
На HK2 (отсутствующие данные):
cqlsh:allotments> use allotments;
cqlsh:allotments> select count(*) from freesale_allotments;
count
-------
19142
(1 rows)
Warnings :
Aggregation query used without partition key
Попытки двойной съемки, выполненные до сих пор:
Я попытался восстановить узел снова, сбросив локальные данные.Он просто вернется в течение 2-3 секунд:
nodetool rebuild -m reset -- hk1
Я попытался выполнить восстановление пространства ключей на всех узлах, это успешно завершилось через ~ 1 час, но счет остался неизменным.
nodetool repair allotments -pr
Я попытался запустить команду scrub, чтобы очистить все таблицы от поврежденных данных, и снова - без изменений.
nodetool scrub
Может кто-нибудь помочь мне направить меня в правильном направлении, чтобы выяснить, как это происходит?случилось, и как бы я исправить это.
Большое спасибо
Мартин