- 异常信息如下:
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.13.0.jar:7.13.0]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.13.0.jar:7.13.0]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.13.0.jar:7.13.0]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-7.13.0.jar:7.13.0]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.13.0.jar:7.13.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) ~[elasticsearch-7.13.0.jar:7.13.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-7.13.0.jar:7.13.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-7.13.0.jar:7.13.0]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-7.13.0.jar:7.13.0]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-7.13.0.jar:7.13.0]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.13.0.jar:7.13.0]
... 6 more
linux系统的elasticsearch中root用户不能启动,会报出以上异常。解决方案:
为elaticsearch创建用户并赋予相应权限:
1)添加用户:adduser elastic
2)修改密码:passwd elastic
3)将es安装目录权限赋给elastic账号:chown -R elastic:elastic elasticsearch-7.13.0
4)以elastic账户登录后,在es安装目录下执行:./bin/elasticsearch
- bootstrap check failure [1] of [2]: max file descriptors [4096] for elastics 解决方案:
vim /etc/security/limits.conf,追加以下内容;
elastic soft nofile 65536
elastic hard nofile 65536
此文件修改后需要重新登录用户,才会生效
- bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 解决方案:
需要增加sysctl.conf内核参数
vim /etc/sysctl.conf
vm.max_map_count=262144
重启sysctl
/sbin/sysctl -p
/sbin/sysctl -w net.ipv4.route.flush=1