debugdockerMinor
Unable to get Cassandra in a Docker to talk to cluster
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
I run the following and a few derivations:
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
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:latestI 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
You need to set
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.