Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Run multiple cassandra nodes (a cluster) from the same machine?

How can I run 3 cassandra nodes (actually a cluster) from my Ubuntu? I don't want to create 3 instances of VMWare/VirtualBox but instead, configure each cassandra node to listen to a different port. Is that possible with one cassandra installation?

A solution that came to my mind is to have 3 local cassandra installation and configure each cassandra.yaml independently but actually I would prefer to have achieve that by my installed cassandra configuration files.

I need such configuration only for testing purposes, obviously.

like image 715
vasilakisfil Avatar asked Jan 23 '13 11:01

vasilakisfil


People also ask

How many nodes does Cassandra cluster have?

As we said earlier, each instance of Cassandra has evolved to contain 256 virtual nodes. The Cassandra server runs core processes. For example, processes like spreading replicas around nodes or routing requests.

How many Cassandra nodes minimum you should have in your cluster to make sure it is highly available?

In most cases, you'll want to operate with strong consistency and so need at least 3 nodes. This allows your Cassandra service to continue uninterrupted if you suffer a hardware failure or some other loss of the Cassandra service on a single node (this will happen sooner or later).


2 Answers

Check this Cassandra Cluster Manager on github https://github.com/pcmanus/ccm

(link is to script that configures multiple Cassandras to listen on different localhost interfaces 127.0.0.1, 127.0.0.2, 127.0.0.3)

like image 136
hjarraya Avatar answered Oct 05 '22 20:10

hjarraya


I guess it would be possible if you had 3 copy of the program, 3 different configurations where every port is different, and you'd have to exclude those ports from the possible connection sockets.

Edit I don't understand the downvotes. This is actually the simplest way to do it, have one set of binaries and create a set of conf and yaml files for each of your nodes, then use one launch script for each of the local nodes you want.

Example : Machine 1 on 7199, Machine 2 on 7200, Machine 3 on 7201 and so forth. Use aliases for your localhost IP, 127.0.0.2, .3, .4 etc

Nodetool ring will work as intended, and show you a cluster, only all of them will be with the same root IP.

like image 38
Gepsens Avatar answered Oct 05 '22 20:10

Gepsens