1. 调整系统参数
$ grep vm.max_map_count /etc/sysctl.conf
vm.max_map_count=262144
2. 安装JDK环境
yum install java -y
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
3. 修改yum源
/etc/yum.repos.d/elastic.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=0
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
4. 安装
yum install elasticsearch
修改配置启动
以下是如何通过jvm.options文件设置堆大小的示例:
-Xms2g
-Xmx2g
将最小堆大小(Xms)和最大堆大小(Xmx)设置为彼此相等
设置Xmx为不超过物理RAM的50%,以确保有足够的物理RAM用于内核文件系统缓存 但是不能超过32g,超过32g java指针将不是压缩的,反而会慢
锁住swap,这会影响es性能(或者修改elasticsearch.yml 添加配置bootstrap.memory.lock)
elasticsearch官方建议开启此参数
但开启 bootstrap.memory.lock: true参数时,启动报错
memory locking requested for elasticsearch process but memory is not locked
然以后修改/etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
* soft memlock unlimited
* hard memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch soft memlock unlimited
发现根本不生效,启动依然报错
limits.conf这里的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。登录用户的限制,通过 /etc/security/limits.conf 来配置
对于systemd service的资源限制,现在放在 /etc/systemd/system.conf 和 /etc/systemd/user.conf
这两个文件里面了。
主要就是/etc/systemd/system.conf这个文件
然后修改下面几项:
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity
注意把注释行去掉
重启OK
另外一种方法解决此问题
在使用systemd的系统上使用RPM或Debian软件包时 ,必须通过systemd指定系统限制。
systemd服务文件(/usr/lib/systemd/system/elasticsearch.service)包含默认应用的限制。
要覆盖它们,添加一个名为的文件 /etc/systemd/system/elasticsearch.service.d/override.conf(或者,您可以运行sudo systemctl edit elasticsearch它在默认编辑器中自动打开文件)。设置此文件中的任何更改,例如:
[Service]
LimitMEMLOCK=infinity
重新加载
sudo systemctl daemon-reload
联系客服