ES安装问题汇总
- ES安装问题汇总
- max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
- memory locking requested for elasticsearch process but memory is not locked
- max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
- can not run elasticsearch as root
- 广告时间
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
问题描述
ES启动报错。其原因是ES需要的的最小max file descriptors为65535,我们设置的是4096,需要增大max file descriptors的值。
解决方案
调大系统的max file descriptors值
在/etc/security/limits.conf
中新增两行配置:
* hard nofile 65536
* soft nofile 65536
这里*
代表所有用户,如果要为指定用户调整参数,则将*
替换为指定的用户名。
调整完毕后可查看参数:
$ ulimit -Hn
65536
$ ulimit -Sn
65536
memory locking requested for elasticsearch process but memory is not locked
问题描述
ES启动报错。原因是ES进程请求内存锁定,但内存未锁定。
解决方案
方案一 关闭bootstrap.memory_lock
在elasticsearch.yml
中配置bootstrap.memory_lock: false
关闭内存锁。
此方案不推荐使用,关闭内存锁会影响性能。
方案二 开启memlock
在/etc/security/limits.conf
中追加配置:
* hard memlock unlimited
* soft memlock unlimited
这里*
代表所有用户,如果要为指定用户调整参数,则将*
替换为指定的用户名。
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
问题描述
ES启动报错。系统虚拟内存默认最大映射数为65530,无法满足ES系统要求,需要调整为262144以上。
解决方案
调大系统虚拟内存最大映射数。
在/etc/sysctl.conf
中追加:
vm.max_map_count = 262144
重新加载系统设置:
sysctl -p
can not run elasticsearch as root
问题描述
使用root用户启动报错
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
···
解决方案
无它,建立一个用户,专门用来启动Elasticsearch的,如esuser,相应的系统目录和数据存储目录都赋予esuser账户为归属者。然后切换到esuser用户重新启动es。
广告时间
既然自己维护ES这么复杂,不如试试腾讯云 Elasticsearch Service。
腾讯云 Elasticsearch Service(ES)是基于开源引擎打造的云端全托管 ELK 服务,集成 X-Pack 特性、独有高性能自研内核、QQ 分词、集群巡检、一键升级等优势能力,引入极致性价比的腾讯自研星星海服务器。助您轻松管理和运维集群,高效构建日志分析、运维监控、信息检索、数据分析等业务。
【腾讯云】ElasticSearch新用户特惠,快速实现日志分析、应用搜索,首购低至4折
↑↑↑现在新用户免费试用30天,快点击上方连接开启试用吧。↑↑↑