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
.