Elassandra is a fork of Elasticsearch modified to run on top of Apache Cassandra.
5M+
This source code is available on GitHub.
Elassandra is a fork of Elasticsearch modified to run on top of Apache Cassandra in a scalable and resilient peer-to-peer architecture. Elasticsearch code is embedded in Cassanda nodes providing advanced search features on Cassandra tables and Cassandra serve as an Elasticsearch data and configuration store.
Check-out the elassandra documentation for detailed instructions.
Commercial support is available from Strapdata.
docker pull strapdata/elassandra
docker run --name my-elassandra strapdata/elassandra
docker exec -it my-elassandra cqlsh
or :
docker run -it --link my-elassandra --rm strapdata/elassandra cqlsh my-elassandra
docker exec -it my-elassandra curl localhost:9200
or :
docker run -it --link my-elassandra --rm strapdata/elassandra curl my-elassandra:9200
docker exec -it my-elassandra nodetool status
This image is a fork of the Cassandra "Official Image" modified to run Elassandra.
We added some more features to the images, described below.
Elassandra logging is configured with the file logback.xml. It is parametrized with environment variables and thus allows to manage debug levels from your docker env section.
LOGBACK_org_apache_cassandra
LOGBACK_org_apache_cassandra_service_CassandraDaemon
LOGBACK_org_elassandra_shard
LOGBACK_org_elassandra_indices
LOGBACK_org_elassandra_index
LOGBACK_org_elassandra_discovery
LOGBACK_org_elassandra_cluster_service
LOGBACK_org_elasticsearch
A ready_probe.sh script can be use for readiness probe as follow:
readinessProbe:
exec:
command: [ "/bin/bash", "-c", "/ready-probe.sh" ]
initialDelaySeconds: 15
timeoutSeconds: 5
All the environment variables that work for configuring the official Cassandra image continue to work here (e.g CASSANDRA_RPC_ADDRESS, CASSANDRA_LISTEN_ADDRESS...).
But for convenience, we provide an extended mechanism for configuring almost everything in cassandra.yaml and elasticsearch.yml, directly from the docker env section.
For instance, to configure cassandra num_tokens and elasticsearch http.port we do like this :
docker run \
-e CASSANDRA__num_tokens=16 \
-e ELASTICSEARCH__http__port=9201 \
strapdata/elassandra
Notice that __ are replaced by . in the generated yaml files.
It does not work to configure yaml arrays, such as cassandra seeds...
To disable Elasticsearch, set the CASSANDRA_DAEMON to org.apache.cassandra.service.CassandraDaemon, default is org.apache.cassandra.service.ElassandraDaemon.
docker run \
-e CASSANDRA_DAEMON=org.apache.cassandra.service.CassandraDaemon \
strapdata/elassandra
Every .sh files found in /docker-entrypoint-init.sh will be sourced before to start elassandra.
docker run -v $(pwd)/script.sh:/docker-entrypoint-init.d/script.sh strapdata/elassandra
Content type
Image
Digest
Size
264.5 MB
Last updated
over 4 years ago
docker pull strapdata/elassandra