I have a server running Ubuntu 14.04 with 220 GB of ram on which I'd like to run elasticsearch. According to the documentation, one node should not have more than 32 GB of RAM, so I guess I have to run several nodes on this one machine in order to make use of all that RAM. I'm considering running 4 nodes with 28 GB of memory for each.
How do I set this up as an ubuntu service, so that all of the nodes automatically come back up after a system reboot for example? I guess I have to edit /etc/init.d/elasticsearch in some way - can anyone help me out?
Thank you guys so much!
You can create multiple config dirs if you wish and then start elasticsearch with -Epath. conf=config1 . For each instance you need to create 'config, data, and logs' folders. e.g. create config1, config2, ...
In this case is better to have a larger node instance. But to run multiple nodes in the same hosts you need to have a different elasticsearch. yml for every node with separated data and log folders, there isn't a way to use the same elasticsearch. yml to run multiple nodes at the same time.
I gave up after a while, removed the elasticsearch repo-installation and downloaded the zip-file instead. Then I created two upstart-jobs and everythings works smoothly so far.
description "Start several ES-instances at once (this is a wrapper)."
start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [06]
respawn
# Give up respawn if restart occurs 5 times in 120 seconds
respawn limit 5 120
env NUM_INSTANCES=4
pre-start script
for i in $(seq 1 $NUM_INSTANCES)
do
start elasticsearch-instance ID=$i
done
end script
pre-stop script
curl -XPOST "http://localhost:9200/_cluster/nodes/_local/_shutdown"
end script
description "starts up an elasticsearch instance (node)"
stop on stopping elasticsearch
respawn
instance $ID
limit nofile 64000 64000
setuid elasticsearch
setgid elasticsearch
env JAVA_OPTS="-XX:+UseCompressedOops"
env ES_HEAP_SIZE=28G
exec /data/elasticsearch/bin/elasticsearch -Des.config=/data/elasticsearch/config/elasticsearch.yml
Assuming your rpm or deb created an init.d script, to start a second node on the same machine do as follows:
cd /etc/init.d
cp --preserve elasticsearch elasticsearch2
Edit elasticsearch2 script:
Save the file. Execute
chkconfig --add elasticsearch2
service elasticsearch2 start
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With