You have to use nodetool move to change the token after the node has started 
the first time.  The value in the config file is only used on first startup.

Unless you were using RF=3 on your 3 node ring, you can't just start with a new 
token without using nodetool.  You have to do move so that the data gets put in 
the right place.

How you would do it with out nodetool:
Dangerous, not smart, can easily shoot yourself in the foot and lose your data 
way, if you were RF = 3:
If you used RF=3, then all nodes should have all data, and you can stop all 
nodes, remove the system keyspace data, and start up the new cluster with the 
right stuff in the yaml file (blowing away system means this is like starting a 
brand new cluster).  Then re-create all of your keyspaces/column families and 
they will pick up the already existing data.

Though, if you are rf=3, nodetool move shouldn't be moving anything anyway, so 
you should just do it the right way and use nodetool.

________________________________________
From: Jay Parashar [jparas...@itscape.com]
Sent: Wednesday, April 11, 2012 1:44 PM
To: user@cassandra.apache.org
Subject: Initial token - newbie question (version 1.0.8)

I created a 3 node ring with the intial_token blank. Of course as expected,
Cassandra generated its own tokens on startup (e.g. tokens X, Y and Z)
The nodes or course were not properly balanced, so I did the following steps

        1)  stopped all the 3 nodes
        2) assigned initial_tokens (A, B, C) respectively
        3) Restarted the nodes

What I find if that the node were still using the original tokens (X, Y and
Z). Log messages say for node 1 show "Using saved token X"

I could rebalance suing nodetool and now the nodes are using the correct
tokens.

But the question is, why were the new tokens not read from the
Cassandra.yaml file? Without using nodetool, how do I make it get the token
from the yaml file? Where is it saved?

Another question: I could not find the auto_bootstrap in the yaml file as
per the documentation. Where is this param located?
Appreciate it.
Thanks in advance
Jay

Reply via email to