2

我有在 Vagrant 中安装 elasticsearch 的代码,我想在 vagrant 启动后运行 elasticsearch,但出现如下错误描述

当 vagrant 运行 elasticsearch-5.0.0 时,我得到的错误

default: max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

安装弹性的 install.sh 文件

# ELASTICSEARCH

# install openjdk-8
apt-get purge openjdk*
add-apt-repository ppa:webupd8team/java -y
apt-get update -y
echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
apt-get install oracle-java8-installer -y

# install ES
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.0.tar.gz

tar -xvf elasticsearch-5.0.0.tar.gz

sudo sysctl -w vm.max_map_count=262144
echo "vagrant soft     nofile         65536" | sudo tee --append /etc/security/limits.conf
echo "vagrant hard     nofile         65536" | sudo tee --append /etc/security/limits.conf
echo "session required pam_limits.so" | sudo tee --append /etc/pam.d/common-session
sudo -H -u vagrant bash -c 'ulimit -n'

# either of the next two lines is needed to be able to access "localhost:9200" from the host os
echo "network.bind_host: 0" >> elasticsearch-5.0.0/config/elasticsearch.yml
echo "network.host: 0.0.0.0" >> elasticsearch-5.0.0/config/elasticsearch.yml
# enable dynamic scripting
echo "script.inline: on" >> elasticsearch-5.0.0/config/elasticsearch.yml
# enable cors (to be able to use Sense)
echo "http.cors.enabled: true" >> elasticsearch-5.0.0/config/elasticsearch.yml
echo "http.cors.allow-origin: /https?:\/\/.*/" >> elasticsearch-5.0.0/config/elasticsearch.yml

sudo chown -R vagrant:vagrant elasticsearch-5.0.0

流浪供应商运行的startup.sh:“总是”

# elasticsearch settings and run
sudo sysctl -w vm.max_mapy_count=262144
su vagrant --shell /bin/bash --command "ulimit -n 65536"
sudo -H -u vagrant bash -c 'elasticsearch-5.0.0/bin/elasticsearch'
4

1 回答 1

1

我很快尝试使用 ubuntu16.04 机器并没有遇到这个问题。

我改变了一点你的启动脚本,因为有一个错字vm.max_mapy_count

来自流浪文件

config.vm.provision :shell, :path => "startup.sh", :run => 'always', :privileged => false

启动.sh

# elasticsearch settings and run
sudo sysctl -w vm.max_map_count=262144
ulimit -n 65536
nohup elasticsearch-5.0.0/bin/elasticsearch &> /home/vagrant/nohup.es.out&

Elasticsearch 正在正确启动,并且在 nohup 文件中捕获了输出。

于 2016-11-04T14:22:32.463 回答