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:
Docker image (see Docker image)
Helm chart (see Helm chart)
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/cassandraand/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/cassandraand/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.