- 異常信息如下:
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