web-dev-qa-db-fra.com

cassandra - Nom de cluster enregistré Test Cluster! = nom configuré

Comment suis-je censé créer un nouveau nœud Cassandra lorsque je reçois cette erreur?

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)

Le nom du cluster dans le fichier cassandra.yaml est:

cluster_name: 'thisisstupid'

Comment est-ce que je résous?

45
Tampa

Vous pouvez renommer le cluster sans supprimer les données en mettant à jour son nom dans la table system.local (mais vous devez le faire pour chaque nœud ...)

cqlsh> UPDATE system.local SET cluster_name = 'test' where key='local';
# flush the sstables to persist the update.
bash $ ./nodetool flush

Enfin, vous devez renommer le cluster avec le nouveau nom dans cassandra.yaml (à nouveau sur chaque nœud)

55
Lyuben Todorov

Les commandes ci-dessus avec UPDATE SET cluster_name ne fonctionne pas pour moi. J'ai trouvé que le travail consiste à suivre les instructions de la documentation DataStax sur Initialisation d'un cluster à nœuds multiples :

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

Pour certaines bonnes configurations de nœuds de cluster, j'ai trouvé cet article de blog très utile.

18
Ryan X

J'ai eu le même problème avec l'édition d'entreprise Datastax4.7. Je l'ai résolu avec les instructions ci-dessus:

Remplacez le nom du cluster par "test du cluster"

démarrer le cluster:

cqlsh> UPDATE system.local SET cluster_name = 'Cassendra Cluster' where key='local';
cqlsh> exit;
$ nodetool flush system

Arrêtez le cluster:

$Sudo service dse stop;Sudo service datastax-agent stop

Modifiez le fichier:

$ Sudo vi /etc/dse/cassandra/cassandra.yaml
cluster_name: 'Cassendra Cluster'

Démarrez le cluster:

$Sudo service dse start;Sudo service datastax-agent start

Vérifiez le journal d'installation:

 $ cat /var/log/cassandra/output.log
15
K Murthy

Pour Cassandra 3.0.5, j'ai fatigué la réponse par Lyuben Todorov mais il manquait un élément clé:

bash $ ./nodetool flush

devrait être:

bash $ ./nodetool flush system

comme dans ici

9
hammadian

Pour Cassandra 3.7, vous devez remplacer le ./nodetool flush avec ./nodetool flush system. Sinon, cela ne fonctionnera pas.

3
hxg

Si cassandra n'est pas en cours d'exécution, vous pouvez effacer le dossier de données.

rm -rf /usr/lib/cassandra/data/*

Cela effacera les tables système qui avaient le mauvais nom de cluster.\Lorsque votre redémarrage cassandra avec le nom de cluster correct dans votre cassandra.yaml tout sera régénéré et vous devriez être bon.

0
Noah Ellman