/ 前言 /
记录一下我在启动ElasticSearch时遇见的一些异常及解决方案
感兴趣的朋友可以看一下搭建我的另一篇博文ElasticSearch集群搭建图文解析
/ 异常 /
-
不能使用root账户启动
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.4.2.jar:7.4.2] at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.4.2.jar:7.4.2] at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.4.2.jar:7.4.2] at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125) ~[elasticsearch-cli-7.4.2.jar:7.4.2] at org.elasticsearch.cli.Comman
这是因为ElasticSearch5.x版本更新的安全相关内容, 会导致我们无法以root账户启动, 你需要新建一个用户, 并将ElasticSearch安装目录的权限赋予该用户, 然后用新用户启动即可
-
max file descriptors [4096] for elasticsearch process is too low
每个进程可打开文件数量太小
修改/etc/security/limits.conf
配置文件# 这里的es就是你为ElasticSearch新建的用户, 也可使用*代替 es hard nofile 65536 es soft nofile 65536
-
max number of threads [3795] for user [es] is too low
最大线程数太小
修改/etc/security/limits.conf
配置文件# 这里的es就是你为ElasticSearch新建的用户, 也可使用*代替 es hard nproc 4096 es soft nproc 4096
-
max virtual memory areas vm.max_map_count [65530] is too low
ElasticSearch运行的虚拟内存区域太小
修改/etc/sysctl.conf
配置文件并设置数据vm.max_map_count = 262144
修改完后执行
sysctl -p
命令 -
OpenJDK 64-Bit Server VM warning: INFO: error=‘Not enough space’ (errno=12)
这是因为ElasticSearch内嵌的JVM启动参数堆内存太小
修改ElasticSearch部署目录下/config/jvm.options
配置文件## JVM configuration ################################################################ ## IMPORTANT: JVM heap size ################################################################ ## ## You should always set the min and max JVM heap ## size to the same value. For example, to set ## the heap to 4 GB, set: ## ## -Xms4g ## -Xmx4g -Xms1g -Xmx1g
-
with the same id but is a different node instance
在搭建ElasticSearch进群时, 如果直接将已部署好的ElasticSearch文件直接复制到其它主机就会触发这个问题
删除ElasticSearch部署文件下/data
文件