Hi Jean,

It sounds like there are no nodes in one of the racks for the eu-west-3
datacenter. What does the output of nodetool status look like currently?

Note, you will need to start a node in each rack before creating the
keyspace. I wrote a blog post with the procedure to set up a new cluster
using the predictive token allocation algorithm:
http://thelastpickle.com/blog/2019/02/21/set-up-a-cluster-with-even-token-distribution.html

Regards,
Anthony

On Fri, 26 Apr 2019 at 19:53, Jean Carlo <jean.jeancar...@gmail.com> wrote:

> Creating a fresh new cluster in aws using this procedure, I got this
> problem once I am bootstrapping the second rack of the cluster of 6
> machines with 3 racks and a keyspace of rf 3
>
> WARN  [main] 2019-04-26 11:37:43,845 TokenAllocation.java:63 - Selected
> tokens [-5106267594614944625, 623001446449719390, 7048665031315327212,
> 3265006217757525070, 5054577454645148534, 314677103601736696,
> 7660890915606146375, -5329427405842523680]
> ERROR [main] 2019-04-26 11:37:43,860 CassandraDaemon.java:749 - Fatal
> configuration error
> org.apache.cassandra.exceptions.ConfigurationException: Token allocation
> failed: the number of racks 2 in datacenter eu-west-3 is lower than its
> replication factor 3.
>
> Someone got this problem ?
>
> I am not quite sure why I have this, since my cluster has 3 racks.
>
> Cluster Information:
>     Name: test
>     Snitch: org.apache.cassandra.locator.GossipingPropertyFileSnitch
>     DynamicEndPointSnitch: enabled
>     Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
>     Schema versions:
>         3bf63440-fad7-3371-9c14-4855ad11ee83: [192.0.0.1, 192.0.0.2]
>
>
>
> Jean Carlo
>
> "The best way to predict the future is to invent it" Alan Kay
>
>
> On Thu, Jan 24, 2019 at 10:32 AM Ahmed Eljami <ahmed.elj...@gmail.com>
> wrote:
>
>> Hi folks,
>>
>> What about adding new keyspaces in the existing cluster, test_2 with the
>> same RF.
>>
>> It will use the same logic as the existing kesypace test ? Or I should
>> restart nodes and add the new keyspace to the cassandra.yaml ?
>>
>> Thanks.
>>
>> Le mar. 2 oct. 2018 à 10:28, Varun Barala <varunbaral...@gmail.com> a
>> écrit :
>>
>>> Hi,
>>>
>>> Managing `initial_token` by yourself will give you more control over
>>> scale-in and scale-out.
>>> Let's say you have three node cluster with `num_token: 1`
>>>
>>> And your initial range looks like:-
>>>
>>> Datacenter: datacenter1
>>> ==========
>>> Address    Rack        Status State   Load            Owns
>>>  Token
>>>
>>>                                  3074457345618258602
>>>
>>> 127.0.0.1  rack1       Up     Normal  98.96 KiB       66.67%
>>>  -9223372036854775808
>>> 127.0.0.2  rack1       Up     Normal  98.96 KiB       66.67%
>>>  -3074457345618258603
>>> 127.0.0.3  rack1       Up     Normal  98.96 KiB       66.67%
>>>  3074457345618258602
>>>
>>> Now let's say you want to scale out the cluster to twice the current
>>> throughput(means you are adding 3 more nodes)
>>>
>>> If you are using AWS EBS volumes then you can use the same volumes and
>>> spin three more nodes by selecting midpoints of existing ranges which means
>>> your new nodes are already having data.
>>> Once you have mounted volumes on your new nodes:-
>>> * You need to delete every system table except schema related tables.
>>> * You need to generate system/local table by yourself which has
>>> `Bootstrap state` as completed and schema-version same as other existing
>>> nodes.
>>> * You need to remove extra data on all the machines using cleanup
>>> commands
>>>
>>> This is how you can scale out Cassandra cluster in the minutes. In case
>>> you want to add nodes one by one then you need to write some small tool
>>> which will always figure out the bigger range in the existing cluster and
>>> will split it into the half.
>>>
>>> However, I never tested it thoroughly but this should work conceptually.
>>> So here we are taking advantage of the fact that we have volumes(data) for
>>> the new node beforehand so we no need to bootstrap them.
>>>
>>> Thanks & Regards,
>>> Varun Barala
>>>
>>> On Tue, Oct 2, 2018 at 2:31 PM onmstester onmstester <
>>> onmstes...@zoho.com> wrote:
>>>
>>>>
>>>>
>>>> Sent using Zoho Mail <https://www.zoho.com/mail/>
>>>>
>>>>
>>>> ---- On Mon, 01 Oct 2018 18:36:03 +0330 *Alain RODRIGUEZ
>>>> <arodr...@gmail.com <arodr...@gmail.com>>* wrote ----
>>>>
>>>> Hello again :),
>>>>
>>>> I thought a little bit more about this question, and I was actually
>>>> wondering if something like this would work:
>>>>
>>>> Imagine 3 node cluster, and create them using:
>>>> For the 3 nodes: `num_token: 4`
>>>> Node 1: `intial_token: -9223372036854775808, -4611686018427387905, -2,
>>>> 4611686018427387901`
>>>> Node 2: `intial_token: -7686143364045646507, -3074457345618258604,
>>>> 1537228672809129299, 6148914691236517202`
>>>> Node 3: `intial_token: -6148914691236517206, -1537228672809129303,
>>>> 3074457345618258600, 7686143364045646503`
>>>>
>>>>  If you know the initial size of your cluster, you can calculate the
>>>> total number of tokens: number of nodes * vnodes and use the
>>>> formula/python code above to get the tokens. Then use the first token for
>>>> the first node, move to the second node, use the second token and repeat.
>>>> In my case there is a total of 12 tokens (3 nodes, 4 tokens each)
>>>> ```
>>>> >>> number_of_tokens = 12
>>>> >>> [str(((2**64 / number_of_tokens) * i) - 2**63) for i in
>>>> range(number_of_tokens)]
>>>> ['-9223372036854775808', '-7686143364045646507',
>>>> '-6148914691236517206', '-4611686018427387905', '-3074457345618258604',
>>>> '-1537228672809129303', '-2', '1537228672809129299', '3074457345618258600',
>>>> '4611686018427387901', '6148914691236517202', '7686143364045646503']
>>>> ```
>>>>
>>>>
>>>> Using manual initial_token (your idea), how could i add a new node to a
>>>> long running cluster (the procedure)?
>>>>
>>>>
>>
>> --
>> Cordialement;
>>
>> Ahmed ELJAMI
>>
>

Reply via email to