Learn How To Install Apache Cassandra 3.11.x on Ubuntu 16.04 LTS

January 20, 2020

Table of Contents

If you are using a different system, please check our other tutorials.

Apache Cassandra is a free and open source NoSQL database management system that is designed to provide scalability, high availability, and uncompromised performance.

In this article, I will guide you through installing the latest stable release of Apache Cassandra, Apache Cassandra 3.11.2, on a Ubuntu 16.04 LTS server instance.

Prerequisites

  • A fresh IT Web Services Ubuntu 16.04 LTS x64 server instance with at least 4GB of memory. Insufficient memory will cause Apache Cassandra to exit abnormally.
  • A sudo user.
  • https://www.itweb.services/tutorials/linux-guides/how-to-update-centos-7-ubuntu-16-04-and-debian-8″>updated to the latest stable status.

Step 1: Install OpenJDK JRE 8

Apache Cassandra requires the latest release of Java 8. For that you can choose to install the latest release of OpenJDK JRE 1.8 as below:

sudo apt install openjdk-8-jre -y

Having OpenJDK JRE 1.8 installed, you can confirm the installation result:

java -version

The output will be similar to the following:

openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Optionally, you can create the JAVA_HOME environment variable as follows:

echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile
echo $JAVA_HOME

Step 2: Install Python 2.7, if it’s missing on your system

Apache Cassandra requires Python 2.7 rather than Python 3. If you operate Apache Cassandra in a Python 3 environment, you may have trouble launching the cqlsh shell of Apache Cassandra.

First, determine the existence and version of Python on your machine:

python -V

On Ubuntu 16.04 LTS, the output can be slightly confusing:

The program 'python' can be found in the following packages:
* python-minimal
* python3
Ask your administrator to install one of them

That actually means you need to install Python 2.7 by yourself:

sudo apt install python -y

Re-run the python -V command, and the output will become:

Python 2.7.12

Step 3: Install the latest stable release of Apache Cassandra

Create the Apache Cassandra 3.11.x apt repo:

echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
sudo apt-get update

If you encounter a GPG public key error, run the following commands to add the mentioned Apache Cassandra public key, which is A278B781FE4B2BDA in this case:

sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-key A278B781FE4B2BDA
sudo apt-get update

Use the newly added apt repo to install Apache Cassandra:

sudo apt-get install cassandra

Step 4: Test the installation of Apache Cassandra

Start the Apache Cassandra daemon:

sudo service cassandra start

If you want to make Apache Cassandra automatically start at system boot, run the following command:

sudo update-rc.d cassandra defaults

Next, use the nodetool program to show the status of Apache Cassandra on current node:

nodetool status

The output will resemble the following:

Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens       Owns (effective)  Host ID                               Rack
UN  127.0.0.1  102.66 KiB  256          100.0%            23916cfd-892d-4898-857c-aff9efe2354a  rack1

You can use the cqlsh shell to interact with Apache Cassandra:

cqlsh localhost

The output will be similar to the following:

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

For now, just type exit and then press ENTER to quit the cqlsh shell.

If you want to stop Apache Cassandra, execute the following command:

sudo service cassandra stop

Need help?

Do you need help setting up this on your own service?
Please contact us and we’ll provide you the best possible quote!