Introduction

Apache Cassandra is a free and open-source distributed NoSQL database system designed to handle large amounts of data across multiple servers, providing high availability with no single point of failure. One of the main features of Apache Cassandra is its ability to run in a multi-node setup, hence providing the following benefits:

Fault tolerance: Data is automatically replicated to multiple nodes for fault-tolerance. Also, replication across multiple data centers is supported. Failed nodes can be replaced with no downtime.

Decentralization: There are no single points of failure, no network bottlenecks and every node in the cluster is identical.

Scalability & Elasticity: Capability to run with dozens of thousands of nodes with petabytes of data. Read and write throughput both increase linearly as new machines are added, with no downtime or interruption to applications.

Installation

The database have been available since Fedora 26 and there are multiple packages in Fedora repositories:

cassandra

Client tools

cassandra-server

Server part, mainly database daemon

cassandra-javadoc

Documentation

More packages can be listed with command: dnf list cassandra\*

dnf install cassandra cassandra-server

will install database server and tools for working with it.

Basic setup

Initialization and startup

Start database daemon:

systemctl start cassandra

Enable start of database daemon after boot:

systemctl enable cassandra

To test if server initialization was successful you can try the Cassandra client. See Usage example.

Users authentication

It’s especially relevant to note that by default authentication is disabled and to enable it you have to take the following steps:

Change the authenticator option in the /etc/cassandra/cassandra.yaml file to PasswordAuthenticator: