How to Install Cassandra on Ubuntu 16.04 LTS

Posted on by Michelle Almendarez | Updated:
Reading Time: 4 minutes

Apache Cassandra is a free open-source database system that is NoSQL based; This means that Cassandra does not use the table model seen in MySQL, MSSQL, or PostgreSQL, but instead uses a cluster model. It's designed to handle large amounts of data and is highly scalable. In this tutorial, we will be installing Cassandra and its prerequisites, Oracle Java, and if necessary the Cassandra drivers.

Pre-Flight Check

  • We are logged in as root on an Ubuntu 16.04 VPS server powered by Liquid Web.
  • Apache Cassandra and this article assume that you are using Oracle Java Standard Edition 8, as opposed to OpenJDK. Please verify your version of Java by typing the command below into your terminal.
java --version
  • At the time of this article, Python 2.7.11 and later versions will need to install updated Cassandra drivers to fix a known bug with the cqlsh command. You can check your Python version similar to checking your Java version.
python --version
  • If you have Python 2.7.11+ or later, download the required driver by running the pip command. You will need pip installed. Within this tutorial, we will show you how to install pip. However, pip is usually pre-installed with Python by default.

Installation of Apache Cassandra

Step 1: Install Oracle Java (JRE)

Cassandra requires you to use Oracle Java SE (JRE) installed on your server. First, you will have to add Java from the Oracle website. Once downloaded, run the installer and when complete, verify the default version of Java by typing.

java -version

You'll receive the following output or something very similar.

Java Version Output

Step 2: Installing Apache Cassandra

First, we have to install the Cassandra repository to /etc/apt/sources.list.d/cassandra.sources.list directory by running the following command (When we made this article Cassandra 3.6 was the current version. You may need to edit this line to reflect the latest release by updating the 36x value. For example, use 37x if Cassandra 3.7 is the newest version.).

echo "deb http://www.apache.org/dist/cassandra/debian 36x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list

Next, run the curl command to add the repository keys.

curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -

We can now update the repositories.

sudo apt-get update
Note
If you get the following error: GPG error: http://www.apache.org 36x InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY A278B781FE4B2BDA Add the public key by running the following command: sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-key A278B781FE4B2BDARepeat the update to the repositories: sudo apt-get update

Finally, finish installing by entering the following command.

sudo apt-get install cassandra

Verify the installation of Cassandra by running this command.

nodetool status

The desired output will show UN meaning everything is up and running normally.

Verifying Cassandra is Installed

Step 3: Connect with cqlsh

If you have an older version of Python before 2.7.11, you'll skip this step and start using Cassandra with the cqlsh command. Good for you! You have successfully installed Cassandra!

cqlsh

You should see something similar to this output.

Connected to Test Cluster at 127.0.0.1:9042.
 [cqlsh 5.0.1 | Cassandra 3.6 | CQL spec 3.4.2 | Native protocol v4]
 Use HELP for help.
Note
For future reference, Cassandra’s configuration file, data directory and logs can be found in:
  • /etc/cassandra is the default file configuration location.
  • /var/log cassandra and /var/lib cassandra are the default log and data directories location.

However, if you get the following error, you'll update the Cassandra drivers. These drivers have a known bug with Cassandra and later versions of Python.

Connection error: ('Unable to connect to any servers', {'127.0.0.1': TypeError('ref() does not take keyword arguments',)})

Check your Python version by typing the following command.

python --version

Luckily, I am going to show you how you can fix this error in 3 easy steps by downloading the drivers.

Step 3a:First we will need pip installed. If you don't have it already, you can get it with the following command.

sudo apt-get install python-pip

Step 3b

Once pip is installed, run the following to install the new Cassandra driver. Please note this command may take a while to execute. Grab a snack and wait for it to complete. It can take 5-10 minutes to install fully.

pip install cassandra-driver

Step 3c

Finally, disable the embedded driver with this command.

export CQLSH_NO_BUNDLED=true

You should now be able to run the cqlsh command.

cqlsh

You should see this output if successful.

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

To exit cqlsh type exit.

cqlsh> exit

Congrats! You have successfully installed Cassandra!

Note
Cassandra should start automatically, but you’ll want to stop Cassandra to make any additional configuration changes. Start and stop it with the following: sudo service cassandra startsudo service cassandra stop

The Most Helpful Humans In Hosting™

We pride ourselves on being The Most Helpful Humans In Hosting™! Our support staff is always available to assist with any managed Dedicated Servers, Cloud Dedicated Servers, or VPS Hosting issues 24 hours a day, 7 days a week, 365 days a year.

If you are not hosting with Liquid Web yet, why wait? Contact our sales team to get started today.

Avatar for Michelle Almendarez

About the Author: Michelle Almendarez

Michelle Almendarez started her love for technology at the University of Texas at San Antonio where she pursued a degree in Computer Science. She has written several Knowledge Base articles for Liquid Web starting in 2018. She has experience with video editing, web design, and server management and in her free time likes to post cute pictures of her dog “Ghost” on Facebook. She sustains her healthy lifestyle by eating only organic farm-raised tacos with her coffee daily.

Latest Articles

Using a Cloudflare Argo Tunnel with load balancing

Read Article

Subdomain takeover — protect your website against it!

Read Article

Controlling PHP settings with a custom php.ini file

Read Article

Linux dos2unix command syntax — removing hidden Windows characters from files

Read Article

Change cPanel password from WebHost Manager (WHM)

Read Article