Yes That worked. Thanks for the pointer. Once the broadcast_address is pointed to public IP, end points are coming with public IP. so Hectors NodeAutoDiscoveryService matches with the existing host and not treating it as new node.

On Wed, Dec 12, 2012 at 11:10 PM, Andrey Ilinykh <> wrote:
It makes sense. rpc_address is interface to listen. Try to set up public IP to broadcast_address.


On Wed, Dec 12, 2012 at 9:33 AM, santi kumar <> wrote:
When I configured rpc_address with public IP, cassandra is not starting up. It's trowing 'unable to create thrift socket on <public IP>. When I changed it to private IP, it was good.

java.lang.RuntimeException: Unable to create thrift socket to /
        at org.apache.cassandra.thrift.CassandraDaemon$ThriftServer.<init>(
        at org.apache.cassandra.thrift.CassandraDaemon.startServer(
        at org.apache.cassandra.service.AbstractCassandraDaemon.startRPCServer(
        at org.apache.cassandra.service.AbstractCassandraDaemon.start(
        at org.apache.cassandra.service.AbstractCassandraDaemon.activate(
        at org.apache.cassandra.thrift.CassandraDaemon.main(
Caused by: org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address /
        at org.apache.cassandra.thrift.TCustomServerSocket.<init>(
        at org.apache.cassandra.thrift.CassandraDaemon$ThriftServer.<init>(

On Wed, Dec 12, 2012 at 3:34 AM, aaron morton <> wrote:
Though I configured the listen_address with public dns, still I had the same issue. 
Internally the public DNS resolves to the private IP. 

looks like describe_ring() is the one which provides the details. 
describe_ring() returns includes the registered RPC addresses for the nodes. Trying setting the rpc_address to the public IP.


Aaron Morton
Freelance Cassandra Developer
New Zealand


On 11/12/2012, at 11:32 PM, santi kumar <> wrote:

We have a 4 node cluster in us-east region in two different AZ's. Clients connect to this cluster from our datacenter which is not on AWS.

Hector clients are initialized with public DNS names, then listern_address is with private ip and rpc_address is with

Having issues with Node Auto Discovery by Hector. When it's trying to discover the ring, the end points are initialized with private IP's for all Token Ranges. It checks with the existing hosts (which are initialized public DNS) and thinks that there is a new node got added to the cluster.

looks like describe_ring() is the one which provides the details. Though I configured the listen_address with public dns, still I had the same issue.

Any idea, what is the best way to configure for EC2. Have gone through the link

But not sure whether it's fixed in 1.1.4. When I run the nodetool ring, it gives the private ips. But in the above doc, it shows the public IPs as part of nodetool ring.

Some insight into this is really helpful.