Spot on Aaron!

Of course when I set up the ring the aws nodes could see one another's
internal addresses so I could let the broadcast address default.
I've now used external addresses for all broadcast (and seed) addresses and
it all works fine.

[[ As a matter of interest, the adjusted values in cassandra.yaml were not
immediately picked up so I zapped the data, which was not a problem in my
case. I assume the conf values are stored in the system schema somewhere and
that this kind of thing could be adjusted more subtly in a real-world
situation. I'll study on but I'm very much liking what I've seen so far!]]

Thanks for your help,
Richard


From:  aaron morton <aa...@thelastpickle.com>
Reply-To:  <user@cassandra.apache.org>
Date:  Wed, 29 Feb 2012 09:08:16 +1300
To:  <user@cassandra.apache.org>
Subject:  Re: Failed to join ring (NAT)

What is the broadcast address on the nodes inside aws ?

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

On 29/02/2012, at 1:41 AM, Richard Evans wrote:

> I have a small ring of two nodes running successfully on aws.
> 
> In order to understand cassandra support for NAT I have tried to add another
> node outside aws on a machine behind NAT.
> When I try to join the ring, there is a 30s pause after starting the messaging
> service and  then it fails, unable to find other nodes.
> 
>  12:16:29,834 Starting Messaging Service on port 7000
>  INFO 12:16:29,848 JOINING: waiting for ring and schema information
>  INFO 12:16:59,849 JOINING: schema complete, ready to bootstrap
>  INFO 12:16:59,850 JOINING: getting bootstrap token
> ERROR 12:16:59,853 Exception encountered during startup
> java.lang.RuntimeException: No other nodes seen!  Unable to bootstrap.If you
> intended to start a single-node cluster, you should make sure your
> broadcast_address (or listen_address) is listed as a seed.  Otherwise, you
> need to determine why the seed being contacted has no knowledge of the rest of
> the cluster.  Usually, this can be solved by giving all nodes the same seed
> list.
> at 
> 
org.apache.cassandra.dht.BootStrapper.getBootstrapSource(BootStrapper.java:168>
)
> at 
> org.apache.cassandra.dht.BootStrapper.getBalancedToken(BootStrapper.java:150)
> 
> The new node config
> seed_provider:
>  - seeds: <awsNode1 external address>
> 
> listen_address: <newNode internal address>
> broadcast_address: <newNode external address>
> 
> The AWS security group config..
> Admits traffic from <newNode external address> on ports 7000, 7001, 8080
> 
> Netwok paths
> When the new node was attempting to start, I proved the paths between the seed
> and the new node. I could Š.
>  - telnet from awsNode1 to newNode 7000
>  - telnet from newNode to awsNode1 7000
> 
> Can anyone spot my beginner's mistake?
> Thanks,
> Richard
> 



Reply via email to