What is the limitation with one-node Cassandra cluster?

I am experimenting with Cassandra and Opscenter. In the Opscenterd’s log file, I found this line

2015-07-29 16:10:16+0000 [] ERROR: Problem while calling CreateClusterConfController (SingleNodeProvisioningError): Due to a limitation with one-node clusters, OpsCenter will not be able to communicate with the Datastax Agent unless list
en_address/broadcast_address in cassandra.yaml are set to 172.17.42.1. Please ensure these match before continuing.

  • How to check if docker is running or not
  • Why can't I extend docker postgres image to create extra database and user
  • Mount linux image in docker container
  • Trouble developing on mirrored, but separate, production environment
  • Docker - adding DNS by editing “docker” file
  • Block outgoing connections to private IPs from Docker containers
  • Because I deployed Cassandra and Opscenter in different Docker containers, I must set listen_address to the container’s internal IP (because Cassandra sitting in a container knows nothing about its host) and broadcast_address to the corresponding host’s bridge IP. This is the normal setup if you deploy Cassandra on machines behind separate gateways (like AWS EC2 where each instance has a private and a public IP).

    Question 1: What exactly is the limitation with one-node cluster?

    Question 2: How should I workaround the problem in this case?

    Thanks

  • What does sbt-native-packager's docker:publishLocal do?
  • Pillow ImageFont is different in docker/Alpine and Ubuntu
  • How do you find volumes configured into the docker *image* itself?
  • Bad Substitution Error Installing NVM within Debian-based Docker image
  • Reducing docker image size
  • Add Docker Machine to Swarm cluster after creation
  • One Solution collect form web for “What is the limitation with one-node Cassandra cluster?”

    Question 1: What exactly is the limitation with one-node cluster?

    OpsCenter (via underlying python driver) is reading cluster information from Cassandra’s system tables (namely, system.peers and system.local), with most of the information coming from system.peers, including broadcast interfaces for each of the nodes.

    However, that table does not contain information about the node itself, only about its peers. When there are no peers, there is no way to get broadcast address from Cassandra itself, and that’s what OpsCenter uses to tie actual Cassandra instances to the internal representation. In this case OpsCenter uses whatever address you specified as a seed (172.17.42.1 here), and when agents report with a different IP (they’re getting Cassandra’s broadcast address via JMX), OpsCenter would discard those messages.

    Question 2: How should I workaround the problem in this case?

    Try setting local_address in address.yaml to 172.17.42.1, this should do the trick.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.