a) No, the tokens and the endpoints are for the entire cluster. You can only 
have one snitch per cluster, why do you want multiple ones? 

b) That happens if the endpoint / node is not listed in the topology, add the 
node to the topology first. created 
https://issues.apache.org/jira/browse/CASSANDRA-2656 to have a nicer message. 


cheers

-----------------
Aaron Morton
Freelance Cassandra Developer
@aaronmorton
http://www.thelastpickle.com

On 16 May 2011, at 12:41, Anurag Gujral wrote:

> Hi Aaron,
>               Thanks for your mail. I am leaning towards making a new cluster 
> since I am using cassandra version
> 0.7.3 and the fix you have put in is in cassandra 0.7.5, and I am less 
> adventurous primarily because it is live system and service disruption is not 
> what is desirable.
> 
> I have two more questions for you:
> 
> a)Is there a way to specify snitch in cassandra per CF rather than one snitch 
> for all column family.
> 
> b)I have a weird issue with 0.7.3 when using property file snitch and a new 
> node is added to an existing running
> cassandra cluster(which uses property file snitch) I have to add new node's 
> IP to the cassandra-topology.properties of all the existing  cassandra nodes 
> otherwise the new node gives error
> ERROR [main] 2011-05-13 23:41:30,821 AbstractCassandraDaemon.java (line 333) 
> Exception encountered during startup.
> java.lang.NullPointerException
>     at 
> org.apache.cassandra.locator.PropertyFileSnitch.getDatacenter(PropertyFileSnitch.java:96)
>     at 
> org.apache.cassandra.locator.NetworkTopologyStrategy.calculateNaturalEndpoints(NetworkTopologyStrategy.java:87)
>     at 
> org.apache.cassandra.locator.AbstractReplicationStrategy.getAddressRanges(AbstractReplicationStrategy.java:196)
>     at 
> org.apache.cassandra.locator.AbstractReplicationStrategy.getPendingAddressRanges(AbstractReplicationStrategy.java:230)
>     at 
> org.apache.cassandra.dht.BootStrapper.getRangesWithSources(BootStrapper.java:195)
>     at org.apache.cassandra.dht.BootStrapper.bootstrap(BootStrapper.java:83)
>     at 
> org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:525)
>     at 
> org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:453)
>     at 
> org.apache.cassandra.service.StorageService.initServer(StorageService.java:403)
>     at 
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:194)
>     at 
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:316)
>     at 
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:79)
> java.lang.NullPointerException
>     at 
> org.apache.cassandra.locator.PropertyFileSnitch.getDatacenter(PropertyFileSnitch.java:96)
>     at 
> org.apache.cassandra.locator.NetworkTopologyStrategy.calculateNaturalEndpoints(NetworkTopologyStrategy.java:87)
>     at 
> org.apache.cassandra.locator.AbstractReplicationStrategy.getAddressRanges(AbstractReplicationStrategy.java:196)
>     at 
> org.apache.cassandra.locator.AbstractReplicationStrategy.getPendingAddressRanges(AbstractReplicationStrategy.java:230)
>     at 
> org.apache.cassandra.dht.BootStrapper.getRangesWithSources(BootStrapper.java:195)
>     at org.apache.cassandra.dht.BootStrapper.bootstrap(BootStrapper.java:83)
>     at 
> org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:525)
>     at 
> org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:453)
>     at 
> org.apache.cassandra.service.StorageService.initServer(StorageService.java:403)
>     at 
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:194)
>     at 
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:316)
>     at 
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:79)
> 
> Thanks for all your help.
> 
> Anurag
> 
> 
> On Sun, May 15, 2011 at 3:56 PM, aaron morton <aa...@thelastpickle.com> wrote:
> Rename a cluster 
> http://wiki.apache.org/cassandra/FAQ#clustername_mismatch
> see also https://issues.apache.org/jira/browse/CASSANDRA-2632
> 
> The best approach will depend on 
> - how much data you have
> - if this is a running system 
> - are the schemas identical 
> - are the individual clusters using the NetworkTopologyStrategy ? 
> - how much excitement you like.  
> 
> Initial thoughts, doubt this is correct...
> 
> - change the tokens in each dc 
> - for a dc that will have the others join it, change 
> cassandra-topology.properties to put the new nodes in the new dc
> - for a dc joining another, follow the procedure to change the name on each 
> node, update the seed list and update the topology to include the dc it is 
> joining, remove the schema and migrations SStables, as you do a rolling 
> restart
> - update the seed list on the dc the others joined
> - confirm there is one schema def
> - update the replication factor of the schema to put replicas in each DC  
> http://wiki.apache.org/cassandra/Operations#Replication
> - nodetool repair to change the RF and then cleanup 
> 
> There will be a lot of data moves and I doubt I got it right, is there any 
> chance of spinning up a whole new cluster and reloading the data ?
> 
> I can give it some more thought later if you need. 
> 
> Hope that helps. 
> 
> -----------------
> Aaron Morton
> Freelance Cassandra Developer
> @aaronmorton
> http://www.thelastpickle.com
> 
> On 14 May 2011, at 04:55, Anurag Gujral wrote:
> 
>> Hi All,
>>             I  have 3 separate cassandra clusters running in multiple data 
>> centers which I want to convert to  one cassandra cluster across multiple 
>> data centers
>> Does anyone tried this? If so what are the steps:
>> 
>> I think I need to do the following:
>> a)Change cluster name: What is the procedure to do this?
>> b)Change tokens so that each node have a unique token
>> c)Change seed nodes so that machines in one data center know about machines 
>> in another data center.
>> 
>> Thanks
>> Anurag
>> 
>> 
>> 
> 
> 

Reply via email to