In this article, we will show you how to install Apache Cassandra on Ubuntu 18.04.
The main advantages of the Apache Cassandra database software against competing options are the following:
- Distributed Nodes
- Replication Support
- Scalable
- Fault-Tolerant
- Data Consistency and Redundancy
- In-house Query Language (Cassandra Query Language)
Apache Cassandra is developed by Apache Software Foundation using Java.
It is licensed under Apache License 2.0. As of writing, the latest stable version of Apache Cassandra is 3.11.
Hardware Requirements
For this tutorial, we will be using an Ubuntu VPS. Before continuing, make sure that your server meets the following minimum or recommended hardware configuration.
The basic rule for every application requirement is the more, the better, especially for busy databases. Apache Cassandra database software is CPU and RAM resource-intensive, and will perform better on CPUs with more cores, and servers with a greater capacity of RAM. It also requires RAM with ECC capability to avoid any memory-related code corruption. The minimum hardware requirement for a production server installation is 2 CPU cores and 8GB of RAM with ECC. The recommended amount of resources would be 8 CPU cores and 32GB of RAM or more with ECC.
For disk setup, it is recommended to use a RAID 0 configuration to make use of the additional throughput that the setup can provide.
Step 1: Checking for Updates and Dependencies
To start with the installation, log in first to your server via SSH using your favorite terminal:
ssh [username]@[server_ip_address] -p [Port_Number]
Modify the [username]
variable with the account name of a root-privileged user found on the server (or the root user itself), and replace the [server_ip_address]
and [Port_Number]
variables with the public facing IP address and SSH port number of your server.
Before starting with the installation, it is best to update and upgrade all installed Ubuntu packages with their latest versions:
apt-get update apt-get upgrade
It is also best to install Linux common libraries and dependencies to ensure we will not encounter any missing library or dependency issues during and for future installations.
apt-get install software-properties-common build-essential -y
Step 2: Installing OpenJDK
To begin, we will need to install Java on our server since Apache Cassandra makes use of the Java VM. Currently, Apache Cassandra is not stable on the latest version of Java which is Java 11. For this, we will install Java 8 which is a reliable and stable version of Java.
Fortunately, OpenJDK version 8 is included by default in Ubuntu’s repository. To proceed, type the following command:
apt-get install openjdk-8-jdk -y
Once the Java 8 package and requirements have been installed, verify our current active Java version:
java -version
The prompt should then output the following text:
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)
Step 3: Installing Apache Cassandra
Apache Cassandra repository is not available in Ubuntu by default. For this, we will need to download and activate its repository.
First, we will need to add the GPG keys using the following command:
wget -q -O - https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
Second, use the following command to add and enable the Apache Cassandra repository. Please note that at the time of writing, the latest version of Apache Cassandra is v3.11.
sh -c 'echo "deb http://www.apache.org/dist/cassandra/debian 311x main" > /etc/apt/sources.list.d/cassandra.list'
To get the latest package from the repository, supply the Ubuntu update command:
apt-get update
Finally, install Apache Cassandra and additional packages and libraries it requires using this next line:
apt-get install cassandra -y
Verify the Apache Cassandra service is installed and running:
systemctl status cassandra
● cassandra.service - LSB: distributed storage system for structured data
Loaded: loaded (/etc/init.d/cassandra; generated)
Active: active (exited) since Sun 2019-05-19 18:36:31 CDT; 1min 50s ago
Docs: man:systemd-sysv-generator(8)
Make sure Apache Cassandra is enabled at boot/startup:
systemctl enable cassandra
Step 4: Configuring Apache Cassandra
The main configuration file for Apache Cassandra is located at
/etc/cassandra/cassandra.yaml
Here are the parameters that can be modified:
cluster_name
: your preferred cluster nameseeds
: set of IP address of nodes separated by a commastorage_port
: the data storage port, must be allowed in the firewalllisten_address
: sets the port where Apache Cassandra should listennative_transport_port
: port for clients to connect with Cassandra, must also be allowed in the firewall
Step 5: Testing Apache Cassandra
Check if we can see the status using built-in nodetool
from the Apache Cassandra package. Nodetool is used for managing Apache Cassandra clusters. You can learn more about nodetool here.
nodetool status
Almost the same output should be produced as Apache Cassandra settings is at default.
To check the connection to our default cluster (Test Cluster), we will utilize Apache Cassandra’s built-in command line shell called cqlsh
. It is used to interact with Apache Cassandra using its own query language called CQL (Cassandra Query Language)
To get into the shell, type the following:
cqlsh
You should see almost the same output.
That’s it– you now have a working Apache Cassandra cluster powered by Ubuntu 18.04. To learn more about setting up Apache Cassandra, check their official online documentation here.
PS. If you enjoyed reading this blog post on how to install Apache Cassandra on Ubuntu 18.04, feel free to share it on social networks using the share shortcuts, or simply leave a comment in the comments section. Thanks.