Installation

The canonical project site is Elassandra.org.

The maintained repository line documented here targets Apache Cassandra 4.0.x with an embedded OpenSearch 1.3.x runtime. Use Java 11 for both the Gradle build and the packaged server runtime.

Elassandra can be installed as:

Important

Elassandra runs both Cassandra storage and OpenSearch indexing in the same JVM. Size hosts accordingly. For local development, allocate at least 4 GB of RAM. For production, follow the sizing guidance in Configuration.

Tarball

Check your Java runtime first:

java -version

The current line should report Java 11 or newer.

Download the release tarball:

wget https://github.com/incloudsio/elassandra/releases/download/v4.0.20-1.3.20.1/elassandra-4.0.20-1.3.20.1.tar.gz

Extract it and enter the installation directory:

tar -xzf elassandra-4.0.20-1.3.20.1.tar.gz
cd elassandra-4.0.20-1.3.20.1

Start Elassandra in the foreground:

bin/cassandra -f

Verify that both Cassandra and OpenSearch are up:

bin/nodetool status
bin/cqlsh -e "DESCRIBE KEYSPACES"
curl -s http://localhost:9200/

The HTTP response should advertise the current Elassandra release and the embedded OpenSearch version. For example:

{
  "name" : "127.0.0.1",
  "cluster_name" : "Test Cluster",
  "cluster_uuid" : "...",
  "version" : {
    "number" : "4.0.20-1.3.20.1"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

For production installs, disable swap and use a supported allocator such as jemalloc where appropriate for your platform.

Deb

Important

Cassandra and Elassandra packages conflict. Remove any standalone Cassandra package before installing Elassandra.

Install Java 11 first if your distribution does not already provide it:

sudo apt-get update
sudo apt-get install openjdk-11-jre-headless

Download the Debian package from the current GitHub release and install it locally:

curl -LO |deb_url|
sudo apt-get install ./elassandra-|release|.deb

Start Elassandra with Systemd:

sudo systemctl start cassandra

or SysV:

sudo service cassandra start

Files locations:

  • /usr/bin: startup script, cqlsh, nodetool, opensearch-plugin

  • /etc/cassandra and /etc/default/cassandra: configurations

  • /var/lib/cassandra: data

  • /var/log/cassandra: logs

  • /usr/share/cassandra: plugins, modules, libs, …

  • /usr/share/cassandra/tools: cassandra-stress, sstabledump…

  • /usr/lib/python3/dist-packages/cqlshlib/ or distribution-specific site-packages: python library for cqlsh

Rpm

Important

Cassandra and Elassandra packages conflict. Remove any standalone Cassandra package before installing Elassandra.

Install Java 11 first if your distribution does not already provide it:

sudo yum install java-11-openjdk-headless

Download the RPM package from the current GitHub release and install it locally:

curl -LO |rpm_url|
sudo yum localinstall ./elassandra-|release|.rpm

Start Elassandra with Systemd:

sudo systemctl start cassandra

or SysV:

sudo service cassandra start

Files locations:

  • /usr/bin: startup script, cqlsh, nodetool, opensearch-plugin

  • /etc/cassandra and /etc/sysconfig/cassandra: configurations

  • /var/lib/cassandra: data

  • /var/log/cassandra: logs

  • /usr/share/cassandra: plugins, modules, libs…

  • /usr/share/cassandra/tools: cassandra-stress, sstabledump…

  • /usr/lib/python3/site-packages/cqlshlib/ or distribution-specific site-packages: python library for cqlsh

Docker image

See Docker image for container image build, environment variables, and the local compose-based cluster example.

Helm chart

See Helm chart for the maintained Kubernetes chart, provider presets, and example installation commands.

Running Cassandra only

If a datacenter should run Cassandra storage without the embedded search runtime, set CASSANDRA_DAEMON to org.apache.cassandra.service.CassandraDaemon in the service environment for those nodes. All nodes in a datacenter should use the same runtime mode.