How to Install Apache Cassandra on Ubuntu 20.04

Posted 

3 min read

Apache Cassandra is a free and open-source NoSQL database with no single point of failure. It provides linear scalability and high availability without compromising performance. Apache Cassandra is used by many companies that have large, active data sets, including Reddit, NetFlix, Instagram, and Github.

This article guides you through the installation of Apache Cassandra on Ubuntu 20.04.

Installing the Apache Cassandra on Ubuntu is straightforward. We’ll install Java, enable the Apache Cassandra repository, import the repository GPG key, and install the Apache Cassandra server.

Installing Java

At the time of writing this article, the latest version of Apache Cassandra is 3.11 and requires OpenJDK 8 to be installed on the system.

Run the following command as root or user with sudo privileges to install OpenJDK :

sudo apt updatesudo apt install openjdk-8-jdk

Verify the Java installation by printing the Java version :

java -version

The output should look something like this:

openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-0ubuntu2~20.04-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)

Installing Apache Cassandra

Install the dependencies necessary to add a new repository over HTTPS:

sudo apt install apt-transport-https

Import the repository’s GPG key and add the Cassandra repository to the system:

wget -q -O - https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -sudo sh -c 'echo "deb http://www.apache.org/dist/cassandra/debian 311x main" > /etc/apt/sources.list.d/cassandra.list'

Once the repository is enabled, update the packages list and install the latest version of Apache Cassandra:

sudo apt updatesudo apt install cassandra

Apache Cassandra service will automatically start after the installation process is complete. You can verify it by typing:

nodetool status

You should see something similar to this:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load    Tokens  Owns (effective)  Host ID                               Rack
UN  127.0.0.1  70 KiB  256     100.0%            2eaab399-be32-49c8-80d1-780dcbab694f  rack1

That’s it. At this point, you have Apache Cassandra installed on your Ubuntu server.

Configuring Apache Cassandra

Apache Cassandra data is stored in the /var/lib/cassandra directory, configuration files are located in /etc/cassandra, and Java start-up options can be configured in the /etc/default/cassandra file.

By default, Cassandra is configured to listen on localhost only. If the client connecting to the database is also running on the same host, you don’t need to change the default configuration file.

To interact with Cassandra through CQL (the Cassandra Query Language) you can use a command-line tool named cqlsh that is shipped with the Cassandra package.

cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.7 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh>

Renaming Apache Cassandra Cluster

The default Cassandra cluster is named “Test Cluster”. If you want to change the cluster name, perform the steps below:

  1. Login to the Cassandra CQL terminal with cqlsh:

    cqlsh

    Run the following command to change the cluster name to “Linuxize Cluster”:

    UPDATE system.local SET cluster_name = 'Linuxize Cluster' WHERE KEY = 'local';

    Change “Linuxize Cluster” with your desired name.

    Once done, type exit to exit the console.

  2. Open the cassandra.yaml configuration file and enter your new cluster name.

    /etc/cassandra/cassandra.yaml
    cluster_name: 'Linuxize Cluster'

    Save and close the file.

  3. Clear the system cache:

    nodetool flush system
  4. Restart the Cassandra service:

    sudo systemctl restart cassandra

Conclusion

We’ve shown you how to install Apache Cassandra on Ubuntu 20.04. You can now visit the official Apache Cassandra Documentation page and learn how to get started with Cassandra.

If you hit a problem or have feedback, leave a comment below.