You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Ananth Gundabattula <ag...@threatmetrix.com> on 2013/06/24 07:13:13 UTC

Merge two clusters into one - renaming an existing cluster

Hello Everybody,

I am trying to merge two clusters into a single cluster ( the rationale being easier administration apart from better load balancing etc)

The plan is to rename a cluster (QAPERF1) as the same name as the second cluster (QAPERF2). Then alter the cassandra-toppology.properties and make them appear as different Dcs. Then finally alter replication settings and rebuild nodes of course after changing the seeds. It is made sure that the schema is same across the  two clusters. This is a test on apache cassandra 1.2.4.

In the process of  renaming an existing cluster, I have followed the instructions here : http://wiki.apache.org/cassandra/FAQ#clustername_mismatch

I get the following when restarting the node after restarting the first node after cluster name change ( The other nodes are yet to be restarted). It looks like the old cluster name has not taken into effect in spite of completing the flush as mentioned in the wiki.

ERROR [main] 2013-06-24 04:44:35,812 CassandraDaemon.java (line 222) Fatal exception during initialization
org.apache.cassandra.exceptions.ConfigurationException: Saved cluster name QAPERF1 != configured name QAPERF2
at org.apache.cassandra.db.SystemTable.checkHealth(SystemTable.java:447)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:218)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:411)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:454)

In the process of reverting it back, I changed the configuration file back to have the old cluster name and now I get this exception.

ERROR [main] 2013-06-24 04:48:34,746 CassandraDaemon.java (line 428) Exception encountered during startup
java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:794)
at org.apache.cassandra.db.SystemTable.upgradeSystemData(SystemTable.java:164)
at org.apache.cassandra.db.SystemTable.finishStartup(SystemTable.java:98)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:317)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:411)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:454)

Can experts please advise what is the best way to rename a cluster in case I want to change it for version 1.2.4 ? Thanks for your time.

Regards,
Ananth

Re: Merge two clusters into one - renaming an existing cluster

Posted by aaron morton <aa...@thelastpickle.com>.
> It is made sure that the schema is same across the  two clusters. 
Just because the schema is the same does not make it the same. Schema is essentially a versioned document,  so the schema on both clusters will be different. 



> ERROR [main] 2013-06-24 04:48:34,746 CassandraDaemon.java (line 428) Exception encountered during startup
> java.util.NoSuchElementException
> 	at java.util.ArrayList$Itr.next(ArrayList.java:794)
Those instructions should not be used with v1.2. 
I'll update the wiki when I sort out the problems with my log in. 

As a work around shut down the node and remove all the files for the LocationInfo CF in the system KS. They should not be there in 1.2. 

Cheers
 

-----------------
Aaron Morton
Freelance Cassandra Consultant
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 24/06/2013, at 5:13 PM, Ananth Gundabattula <ag...@threatmetrix.com> wrote:

> Hello Everybody,
> 
> I am trying to merge two clusters into a single cluster ( the rationale being easier administration apart from better load balancing etc) 
> 
> The plan is to rename a cluster (QAPERF1) as the same name as the second cluster (QAPERF2). Then alter the cassandra-toppology.properties and make them appear as different Dcs. Then finally alter replication settings and rebuild nodes of course after changing the seeds. It is made sure that the schema is same across the  two clusters. This is a test on apache cassandra 1.2.4. 
> 
> In the process of  renaming an existing cluster, I have followed the instructions here : http://wiki.apache.org/cassandra/FAQ#clustername_mismatch
> 
> I get the following when restarting the node after restarting the first node after cluster name change ( The other nodes are yet to be restarted). It looks like the old cluster name has not taken into effect in spite of completing the flush as mentioned in the wiki. 
> 
> ERROR [main] 2013-06-24 04:44:35,812 CassandraDaemon.java (line 222) Fatal exception during initialization
> org.apache.cassandra.exceptions.ConfigurationException: Saved cluster name QAPERF1 != configured name QAPERF2
> 	at org.apache.cassandra.db.SystemTable.checkHealth(SystemTable.java:447)
> 	at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:218)
> 	at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:411)
> 	at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:454)
> 
> 
> In the process of reverting it back, I changed the configuration file back to have the old cluster name and now I get this exception. 
> 
> ERROR [main] 2013-06-24 04:48:34,746 CassandraDaemon.java (line 428) Exception encountered during startup
> java.util.NoSuchElementException
> 	at java.util.ArrayList$Itr.next(ArrayList.java:794)
> 	at org.apache.cassandra.db.SystemTable.upgradeSystemData(SystemTable.java:164)
> 	at org.apache.cassandra.db.SystemTable.finishStartup(SystemTable.java:98)
> 	at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:317)
> 	at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:411)
> 	at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:454)
> 
> Can experts please advise what is the best way to rename a cluster in case I want to change it for version 1.2.4 ? Thanks for your time. 
> 
> Regards,
> Ananth 
>