HiveBrain v1.2.0
Get Started
← Back to all entries
debugdockerMinor

Unable to get Cassandra in a Docker to talk to cluster

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
dockerunabletalkgetcassandracluster

Problem

Trying to get Cassandra running in a docker using the official docker image. When I execute the below lines of code it starts then stops the docker without connecting to the cluster. I have checked the cassandra.yaml file and it looks just like the other nodes on my cluster. Same for the cassandra-rackdc.properties file. The docker can ping all the other computers.

I run the following and a few derivations:

docker run --name cassandra -i \
-v /media/mcamp/HDD/Docker/CampgroundContainer1:/var/lib/cassandra \
-e CASSANDRA_SEEDS="192.168.0.114, 192.168.0.101, 192.168.0.106" \
-e CASSANDRA_CLUSTER_NAME=CampCluster \
-e CASSANDRA_DC=campground-wireless \
-e CASSANDRA_RACK=Docker1 \
-e CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch \
-e CASSANDRA_START_RPC=true \
-e CASSANDRA_LISTEN_ADDRESS=172.17.0.2 \
-p 7000:7000 \
 cassandra:latest


I get the following error:

```
INFO [ScheduledTasks:1] 2017-11-10 03:45:39,428 TokenMetadata.java:498 - Updating topology for all endpoints that have changed
Exception (java.lang.RuntimeException) encountered during startup: Unable to gossip with any seeds
java.lang.RuntimeException: Unable to gossip with any seeds
at org.apache.cassandra.gms.Gossiper.doShadowRound(Gossiper.java:1415)
at org.apache.cassandra.service.StorageService.checkForEndpointCollision(StorageService.java:550)
at org.apache.cassandra.service.StorageService.prepareToJoin(StorageService.java:801)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:666)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:612)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:393)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:600)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:689)
ERROR [main] 2017-11-10 03:46:08,466 CassandraDaemon.java:706 - Exception encountered during startup
java.lang.RuntimeEx

Solution

I think that the problem could be that you don't set the CASSANDRA_BROADCAST_ADDRESS parameter that is used by Cassandra when it talks with other nodes. By default it sets it to value of CASSANDRA_LISTEN_ADDRESS, but in your case this address is address of Docker network, so other nodes won't able to reach your Docker instance.

You need to set CASSANDRA_BROADCAST_ADDRESS to IP address of your machine that hosts the Docker.

Context

StackExchange Database Administrators Q#190610, answer score: 2

Revisions (0)

No revisions yet.