一、环境
CentOS 7.8;
Elasticsearch 6.6.0;
二、问题描述
在使用配置“bootstrap.memory_lock: true
”锁定内存时,ES启动失败,报错日志如下:
[ERROR][o.e.b.Bootstrap ] [fhWrGXB] node validation exception
[1] bootstrap checks failed
[1]: memory locking requested for elasticsearch process but memory is not locked
三、解决办法
根本原因在于,ES使用普通用户启动进程,而普通用户无法进行锁定内存操作。
3.1、如果使用源码安装Elasticsearch
在启动ES之前使用root用户修改limits:
# ulimit -n 65535
或者在/etc/security/limits.conf文件中修改:
# vim /etc/security/limits.conf
elasticsearch - nofile 65536
如果是Ubuntu系统,则需要:
# vim /etc/pam.d/su
# session required pam_limits.so #将改行注释