Cassandra - Сохраненное имя кластера Test Cluster!= настроенное имя
Как я могу запустить новую Cassandra node, когда я получу эту ошибку?
INFO [SSTableBatchOpen:1] 2014-02-25 01:51:17,132 SSTableReader.java (line 223) Opening /var/lib/cassandra/data/system/local/system-local-jb-5 (5725 bytes)
ERROR [main] 2014-02-25 01:51:17,377 CassandraDaemon.java (line 237) Fatal exception during initialization
org.apache.cassandra.exceptions.ConfigurationException: Saved cluster name Test Cluster != configured name thisisstupid
at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:542)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:233)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:462)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:552)
Имя кластера в файле cassandra.yaml:
cluster_name: 'thisisstupid'
Как мне разрешить?
Ответы
Ответ 1
Вы можете переименовать кластер, не удаляя данные, обновив его имя в таблице system.local(но вы должны сделать это для каждого node...)
cqlsh> UPDATE system.local SET cluster_name = 'test' where key='local';
# flush the sstables to persist the update.
bash $ ./nodetool flush
Наконец, вам нужно переименовать кластер в новое имя в cassandra.yaml(снова на каждом node)
Ответ 2
У меня была такая же проблема с корпоративной версией Datastax4.7. Я разрешил это с помощью следующих инструкций:
Измените имя кластера на "тестовый кластер"
запустите кластер:
cqlsh> UPDATE system.local SET cluster_name = 'Cassendra Cluster' where key='local';
cqlsh> exit;
$ nodetool flush system
Остановить кластер:
$sudo service dse stop;sudo service datastax-agent stop
Отредактируйте файл:
$ sudo vi /etc/dse/cassandra/cassandra.yaml
cluster_name: 'Cassendra Cluster'
Запустите кластер:
$sudo service dse start;sudo service datastax-agent start
Проверить журнал установки:
$ cat /var/log/cassandra/output.log
Ответ 3
Вышеуказанные команды с UPDATE SET cluster_name
не работают для меня. Я нашел, что работа заключается в том, чтобы следовать инструкциям документации DataStax по Инициализация кластера node:
sudo service cassandra stop
sudo rm -rf /var/lib/cassandra/data/system/*
sudo vi /etc/cassandra/cassandra.yaml, setup the proper parameters
sudo service cassandra start
nodetool status
Для некоторых хороших настроек кластера node я нашел это сообщение в блоге, чтобы быть очень полезным.
Ответ 4
Для Cassandra 3.0.5 я устал от ответа Любен Тодоров, но в нем отсутствовала ключевая часть:
bash $ ./nodetool flush
должен быть:
bash $ ./nodetool flush system
как в здесь
Ответ 5
Для Cassandra 3.7 вы должны заменить ./nodetool flush
на ./nodetool flush system
. В противном случае это не сработает.
Ответ 6
Если cassandra
не работает, вы можете стереть папку с данными.
rm -rf /usr/lib/cassandra/data/*
Это очистит системные таблицы с неправильным именем кластера. \
Когда ваш перезапуск cassandra
с правильным именем кластера в вашем cassandra.yaml
, все будет восстановлено, и вы должны быть хорошими.