Database configuration pack

For an easy setup, you can found a pack with Cassandra, Elasticsearch and Java JRE redistributables for Windows x64, macOS, and Linux x64.

This pack can be downloaded here :

MyDMAM Database Pack mydmam-databases-jre1.8.0_121-apache-cassandra-1.2.19-elasticsearch-1.5.2.tar.gz (229.12 MB) MD5: 67683809cb3c2659391c6445242bf49f

It contains:

  • An official Apache Cassandra Bin redistributable v. 1.2.19.
  • An official Elasticsearch Bin redistributable v. 1.5.2.
  • An official Oracle JRE 1.8.0_121 Bin for Windows 64, Linux 64, macOS 64.
  • A script for setup.

All are tested and ready to works with MyDMAM.

Unpack mydmam-databases archive tar xvfz mydmam-databases… or with 7zip.

You can move mydmam-databases directory to a better location like /opt/mydmam-databases or c:\mydmam-databases. Keep this dir on current user HOME dir for macOS.

Go to unpacked mydmam-databases directory.

Switch to root rights, only for Linux.

bash bootstrap.bash

Read the script output.

Check and edit Cassandra configuration in conf/cassandra.yml.

Check and edit Cassandra log configuration in conf/log4j-server.properties. Edit like:

log4j.appender.R.File=/var/log/nosqldb/cassandra.log

(for Linux, adapt it for macOS and Windows).

Edit Elasticsearch configuration in config/elasticsearch.yml

Windows services

Set JAVA_HOME to (this directory)/jre-windows/jre1.x.0_xxx in system variables.

Get instructions for declare service in bin/cassandra.bat (prunsrv.exe will be founded a the root directory).

Use /bin/elasticsearch-service-x64.exe for declare Elasticsearch service.

Linux services

If you needs absolutely to start Cassandra and Elasticsearch in the same server, remove this lines in cassandra.service file:

LimitNOFILE=100000
LimitMEMLOCK=infinity
LimitNPROC=32768
LimitAS=infinity

After that

Try to start servers in command line, like the script tell you how to do.

You should install Head Plugin for each Elasticsearch node. Head can be access to http://<node-addr>:9200/_plugin/head/ after the setup.

Setup and start services again like the script tell you how to do.

After start, Cassandra should display in it’s log a kind of

INFO [Thread-2] 0000-00-00 00:00:00,000 ThriftServer.java (line 110) Listening for thrift clients...

You can found Elasticsearch in /var/log/nosqldb/escluster.log for Linux.

Why not check Cassandra run with a nodetool call ?

You can delete unused jre (example: remove jre-macos- and jre-windows- directories on linux server).

You can delete unused database main directory (example: remove apache-cassandra directory on an Elasticsearch only setup).

Don’t forget to check NTP status for all servers, with Debian it’s not automatic:

echo "Servers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org" >> /etc/systemd/timesyncd.conf
 systemctl start systemd-timesyncd.service
 systemctl enable systemd-timesyncd.service
 systemctl status systemd-timesyncd.service

For make the redistributable archive, use the build.xml on /mydmam repository with ant pack-databases.