Installing Cassandra

Apache Cassandra can be installed on a number of Linux distributions:

  • AlmaLinux
  • Amazon Linux Amazon Machine Images (AMIs)
  • Debian
  • RedHat Enterprise Linux (RHEL)
  • SUSE Enterprise Linux
  • Ubuntu This is not an exhaustive list of operating system platforms, nor is it prescriptive. However, users are well-advised to conduct exhaustive tests if using a less-popular distribution of Linux. Deploying on older Linux versions is not recommended unless you have previous experience with the older distribution in a production environment.

    Prerequisites

  • Install the latest version of Java 11 or Java 17, from one of the following locations:

  • Oracle Java Standard Edition 11 Archived Version

  • Oracle Java Standard Edition 17
  • OpenJDK 11
  • OpenJDK 17 1.
  • Command
  • Result
    1. $ java -version
    1. openjdk version "11.0.20" 2023-07-18OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8)OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode)
  • cqlsh, install the latest version of Python 3.7+. python --version.

    Choosing an installation method

    There are three methods of installing Cassandra that are common:
  • Docker image
  • Tarball binary file
  • Package installation (RPM, YUM) docker installed on Linux. Pull the appropriate image from the Docker Hub and start Cassandra with a docker run command. root permissions and can be installed on any Linux distribution. root permissions, and are most appropriate for production installs. Install the RPM build on CentOS and RHEL-based distributions if you want to install Cassandra using YUM. Install the Debian build on Ubuntu and other Debian-based distributions if you want to install Cassandra using APT.

    Install with Docker

  1. Pull the docker image. For the latest image, use:
  1. docker pull cassandra:latest

docker pull command will get the latest version of the official Docker Apache Cassandra image available from the Dockerhub.

  1. docker run command:
  1. docker run --name cass_cluster cassandra:latest

--name option will be the name of the Cassandra cluster created. This example uses the name cass_cluster.

  1. cqlsh to interact with the Cassandra node created:
  1. docker exec -it cass_cluster cqlsh

Install tarball file

1.

  • Command
  • Result
    1. $ java -version
    1. openjdk version "11.0.20" 2023-07-18OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8)OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode)
  1. Apache Cassandra Download site. For example, to download Cassandra 4.0:
  1. $ curl -OL http://apache.mirror.digitalpacific.com.au/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz
  1. here. For example, to verify the hash of the downloaded file using GPG:
  • Command
  • Result
  1. $ gpg --print-md SHA256 apache-cassandra-4.0.0-bin.tar.gz
  1. apache-cassandra-4.0.0-bin.tar.gz: 28757DDE 589F7041 0F9A6A95 C39EE7E6 CDE63440 E2B06B91 AE6B2006 14FA364D

Compare the signature with the SHA256 file from the Downloads site:

  • Command
  • Result
  1. $ curl -L https://downloads.apache.org/cassandra/4.0.0/apache-cassandra-4.0.0-bin.tar.gz.sha256
  1. 28757dde589f70410f9a6a95c39ee7e6cde63440e2b06b91ae6b200614fa364d
  1. Unpack the tarball:
  1. $ tar xzvf apache-cassandra-4.0.0-bin.tar.gz

apache-cassandra-4.0.0/ directory. This is the tarball installation location.

  1. Located in the tarball installation location are the directories for the scripts, binaries, utilities, configuration, data and log files:
  1. <tarball_installation>/ bin/ (1) conf/ (2) data/ (3) doc/ interface/ javadoc/ lib/ logs/ (4) pylib/ tools/ (5)
  1. Start Cassandra:
  1. $ cd apache-cassandra-4.0.0/ && bin/cassandra
  1. Monitor the progress of the startup with:
  • Command
  • Result
  1. $ tail -f logs/system.log

system.log: +

  1. INFO [main] 2019-12-17 03:03:37,526 Server.java:156 - Starting listening for CQL clients on localhost/127.0.0.1:9042 (unencrypted)...
  1. Check the status of Cassandra:
  1. $ bin/nodetool status

UN which stands for “Up/Normal”. Alternatively, connect to the database with:

  1. $ bin/cqlsh

Install as Debian package

1.

  • Command
  • Result
    1. $ java -version
    1. openjdk version "11.0.20" 2023-07-18OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8)OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode)
  1. cassandra.sources.list. 40x (with an “x” as the suffix). For older releases use:
  • 311x for C* 3.11 series
  • 30x for {30_version}
  • 22x for {22_version}
  • 21x for {21_version} 40x): +
    1. $ echo "deb https://debian.cassandra.apache.org 42x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.listdeb https://debian.cassandra.apache.org 42x main
  1. Add the Apache Cassandra repository keys to the list of trusted keys on the server:
  • Command
  • Result
  1. $ curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -
  1. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 266k 100 266k 0 0 320k 0 --:--:-- --:--:-- --:--:-- 320kOK
  1. Update the package index from sources:
  1. $ sudo apt-get update
  1. Install Cassandra with APT:
  1. $ sudo apt-get install cassandra
  1. Monitor the progress of the startup with:
  • Command
  • Result
  1. $ tail -f logs/system.log

system.log: +

  1. INFO [main] 2019-12-17 03:03:37,526 Server.java:156 - Starting listening for CQL clients on localhost/127.0.0.1:9042 (unencrypted)...
  1. Check the status of Cassandra:
  1. $ nodetool status

UN which stands for “Up/Normal”. Alternatively, connect to the database with:

  1. $ cqlsh

Install as RPM package

1.

  • Command
  • Result
    1. $ java -version
    1. openjdk version "11.0.20" 2023-07-18OpenJDK Runtime Environment Temurin-11.0.20+8 (build 11.0.20+8)OpenJDK 64-Bit Server VM Temurin-11.0.20+8 (build 11.0.20+8, mixed mode)
  1. /etc/yum.repos.d/cassandra.repo (as the root user). 40x (with an “x” as the suffix). For older releases use:
  • 311x for C* 3.11 series
  • 30x for {30_version}
  • 22x for {22_version}
  • 21x for {21_version} 40x): +
    1. [cassandra]name=Apache Cassandrabaseurl=https://redhat.cassandra.apache.org/42x/gpgcheck=1repo_gpgcheck=1gpgkey=https://downloads.apache.org/cassandra/KEYS
  1. Update the package index from sources:
  1. $ sudo yum update
  1. Install Cassandra with YUM:
  1. $ sudo yum install cassandra
  1. Start the Cassandra service:
  1. $ sudo service cassandra start
  1. Monitor the progress of the startup with:
  • Command
  • Result
  1. $ tail -f logs/system.log

system.log: +

  1. INFO [main] 2019-12-17 03:03:37,526 Server.java:156 - Starting listening for CQL clients on localhost/127.0.0.1:9042 (unencrypted)...
  1. Check the status of Cassandra:
  1. $ nodetool status

UN which stands for “Up/Normal”. Alternatively, connect to the database with:

  1. $ cqlsh

Further installation info

Troubleshooting section.