Troubleshooting cassandra: Saved cluster name XXXX != configured name YYYY

Si alguna vegada ens trobem que el cassandra no engega, i el log ens apareix el següent error:

INFO [SSTableBatchOpen:3] 2012-10-31 16:51:35,669 SSTableReader.java (line 153) Opening /cassandra/data/system/LocationInfo-hd-56 (696 bytes)
ERROR [main] 2012-10-31 16:51:35,717 AbstractCassandraDaemon.java (line 173) Fatal exception during initialization
org.apache.cassandra.config.ConfigurationException: Saved cluster name XXXX != configured name YYYY
at org.apache.cassandra.db.SystemTable.checkHealth(SystemTable.java:299)
at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:169)
at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:356)
at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:107)

El problema es que el nom de cluster que apareix al fitxer de configuracio ($CASSANDRA_HOME/conf/cassandra.yaml) es diferent al que hi ha configurat al valor LocationInfo[utf8(‘L’)][utf8(‘ClusterName’)] dintre de la base de dades. Per arreglar-ho, o bé hem de canviar un o bé hem de canviar l’altre.

Canviar el fitxer de configuració es obvi, però si volem canviar l’altre haurem de fer servir el cassandra-cli:

$CASSANDRA_HOME/bin/cassandra-cli -h localhost
use system;
set LocationInfo[utf8('L')][utf8('ClusterName')]=utf8('');
exit;

Això ens pot passar quan volem portar les dades de cassandra d’un cluster a un altre (per exemple, d’un entorn productiu a un entorn que no ho és), o simplement si volvem canviar el nom del cluster de cassandra per qualsevol motiu.

Tomàs

Tomàs

Ja posaré alguna cosa