Подтвердить что ты не робот

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'

Как мне разрешить?

4b9b3361

Ответ 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, все будет восстановлено, и вы должны быть хорошими.