2016-11-23 74 views
6

當我嘗試使用命令./elasticsearch啓動彈性搜索5.0並獲取低於錯誤時,我正在獲取低於錯誤的錯誤。以root用戶身份運行彈性搜索

[2016-11-23T13:44:09,507][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main] 
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root 
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:116) ~[elasticsearch-5.0.1.jar:5.0.1] 
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:103) ~[elasticsearch-5.0.1.jar:5.0.1] 
    at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.0.1.jar:5.0.1] 
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:96) ~[elasticsearch-5.0.1.jar:5.0.1] 
    at org.elasticsearch.cli.Command.main(Command.java:62) ~[elasticsearch-5.0.1.jar:5.0.1] 
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch-5.0.1.jar:5.0.1] 
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:73) ~[elasticsearch-5.0.1.jar:5.0.1] 
Caused by: java.lang.RuntimeException: can not run elasticsearch as root 
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:96) ~[elasticsearch-5.0.1.jar:5.0.1] 
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:155) ~[elasticsearch-5.0.1.jar:5.0.1] 
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286) ~[elasticsearch-5.0.1.jar:5.0.1] 
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:112) ~[elasticsearch-5.0.1.jar:5.0.1] 
    ... 6 more 

我試着從切換到其他用戶開始,嘗試sudo ./elasticsearch並得到相同的錯誤。 如何以root用戶身份啓動彈性搜索?

+0

第二行:'java.lang.RuntimeException:無法以root身份運行elasticsearch「。再後來:'由於:java.lang.RuntimeException:無法以root身份運行elasticsearch。 – Gavin

回答

1

您無法以root身份啓動elasticsearch。這是不允許的,也是非常危險的。請參閱installation guide瞭解如何根據您的主機正確安裝它。

+7

如果我想找到安裝指南鏈接,我寧願使用谷歌而不是stackoverflow。 –

1

我有同樣的問題我不得不與其他用戶聯繫。但首先,我必須授予他執行bin/elasticsearch的權利。

+1

請考慮張貼此評論,而不是擴大,以包括更多的細節。 –

1

此問題的根本原因是: ElasticSearch不允許從根擁有者運行。 此問題還有另一種可能性:「僅爲root用戶設置Java路徑,而不是爲所有其他用戶設置」。 此問題的解決方案:

步驟1:通過命令將elasticSearch目錄的所有權從根改爲其他用戶。 $須藤CHOWN -R CURRENT_USER:GROUP_NAME elasticsearch-5.5.0

SETP 2:檢查中的Java類路徑當前用戶設定[不僅爲根]。如果命令:$ java -version或echo $ JAVA_HOME命令給出空結果。這意味着我們應該在當前用戶的classpath [system env varible]中設置Java,然後按照步驟3執行。否則將啓動elasticsearch服務。

第3步:編輯/ etc/profile文件,並添加兩行,按您的系統目錄 出口JAVA_HOME = 「Java的目錄位置」

出口PATH = $ JAVA_HOME /斌:$ PATH 運行 $源源/ etc/profile

之後運行elasticSearch服務。它完美地爲我工作。