歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux安裝 >> Linux上安裝ElasticSearch

Linux上安裝ElasticSearch

日期:2017/4/19 14:03:14   编辑:Linux安裝

今天搞了一下ElasticSearch在Linux上的安裝,結果我在安裝ElasticSearch的時候遇到了下面的一系列問題,現在寫下來讓自己記住,經常翻看,希望也能幫到你們。

1.運行環境:

centos6.4

elasticsearch-2.3.5

jdk1.7.0_51(我虛擬機的jdk版本)

2.我先去elasticsearch的官方網站上下載了elasticsearch-2.3.5.tar.gz的安裝包,下載到我window系統下的D盤內。然後我又在linux系統下使用命令窗口把window系統下的D盤內的elasticsearch-2.3.5.tar.gz的安裝包拷貝到linux系統內。

3.現在在linux系統裡面就有了elasticsearch-2.3.5.tar.gz的安裝包,我放在了/usr/local/es下面,解壓後得到elasticsearch-2.3.5。

4.然後我就使用命令啟動elasticsearch:

cd /usr/local/eselasticsearch-2.3.5/bin —–> 進入bin目錄下面

./elasticsearch ————————————-> 啟動elasticsearch

然後就報了以下的異常:

[[email protected] bin]# ./elasticsearch

[2017-03-16 11:52:59,903][WARN ][bootstrap ] jvm uses the client vm, make sure to run Java with the server vm for best performance by adding -server to the command line

Exception in thread “main” java.lang.RuntimeException: Java version: Oracle Corporation 1.7.0_51 [Java HotSpot(TM) Client VM 24.51-b03] suffers from critical bug https://bugs.openjdk.java.net/browse/JDK-8024830 which can cause data corruption.

Please upgrade the JVM, see

for current recommendations.

If you absolutely cannot upgrade, please add -XX:-UseSuperWord to the JAVA_OPTS environment variable.

Upgrading is preferred, this workaround will result in degraded performance.

at org.elasticsearch.bootstrap.JVMCheck.check(JVMCheck.java:123)

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:268)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

Refer to the log for complete error details.

這些異常的大概意思是:

解決的方法有兩種:

第一種:升級JVM

第二種:如果完全不能升級,就添加 -XX:-UseSuperWord to the JAVA_OPTS environment variable.但是升級是有先的方案,第二種方案會使性能下降。

5.我先采用了第一種方法,去升級jdk到1.8.0_112。這裡升級jdk的版本跟我之前講到的【linux系統安裝jdk】是一個步驟。升級完以後測試java環境java -version,結果顯示的還是我原來jdk1.7.0_51的環境,於是我重新連接了一下虛擬機IP,在測試java -version,結果jdk1.8.0_112的環境升級成功。於是我就直接去啟動elasticsearch。結果又給我報了下面的異常:

[[email protected] bin]# ./elasticsearch

Exception in thread “main” java.lang.RuntimeException: don’t run elasticsearch as root.

at.org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)

at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

Refer to the log for complete error details.

解決了jdk的問題現在又蹦出來另一個問題。這個異常的意思是用root用戶是不能直接運行elasticsearch的,後來我想起我還有一個Hadoop的用戶,於是就又換了個hadoop的用戶:su hadoop。用hadoop用戶再次啟動。

結果還是報了下面的異常:

[[email protected] bin]# su hadoop

[[email protected] bin]$ ./elasticsearch

log4j:ERROR setFile(null,true) call failed.

java.io.FileNotFoundException: /usr/local/es/elasticsearch-2.3.5/logs/elasticsearch.log (Permission denied)

at java.io.FileOutputStream.open0(Native Method)

at java.io.FileOutputStream.open(FileOutputStream.java:270)

at java.io.FileOutputStream.(FileOutputStream.java:213)

at java.io.FileOutputStream.(FileOutputStream.java:133)

at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)

at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)

at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)

at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)

at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)

at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)

at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)

at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)

at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)

at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)

at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)

at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

log4j:ERROR Either File or DatePattern options are not set for appender [file].

log4j:ERROR setFile(null,true) call failed.

java.io.FileNotFoundException: /usr/local/es/elasticsearch-2.3.5/logs/elasticsearch_deprecation.log (Permission denied)

at java.io.FileOutputStream.open0(Native Method)

at java.io.FileOutputStream.open(FileOutputStream.java:270)

at java.io.FileOutputStream.(FileOutputStream.java:213)

at java.io.FileOutputStream.(FileOutputStream.java:133)

at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)

at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)

at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)

at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)

at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)

at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)

at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)

at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)

at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)

at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)

at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)

at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

log4j:ERROR Either File or DatePattern options are not set for appender [deprecation_log_file].

log4j:ERROR setFile(null,true) call failed.

java.io.FileNotFoundException: /usr/local/es/elasticsearch-2.3.5/logs/elasticsearch_index_indexing_slowlog.log (Permission denied)

at java.io.FileOutputStream.open0(Native Method)

at java.io.FileOutputStream.open(FileOutputStream.java:270)

at java.io.FileOutputStream.(FileOutputStream.java:213)

at java.io.FileOutputStream.(FileOutputStream.java:133)

at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)

at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)

at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)

at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)

at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)

at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)

at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)

at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)

at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)

at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)

at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)

at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

log4j:ERROR Either File or DatePattern options are not set for appender [index_indexing_slow_log_file].

log4j:ERROR setFile(null,true) call failed.

java.io.FileNotFoundException: /usr/local/es/elasticsearch-2.3.5/logs/elasticsearch_index_search_slowlog.log (Permission denied)

at java.io.FileOutputStream.open0(Native Method)

at java.io.FileOutputStream.open(FileOutputStream.java:270)

at java.io.FileOutputStream.(FileOutputStream.java:213)

at java.io.FileOutputStream.(FileOutputStream.java:133)

at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)

at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)

at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)

at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)

at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)

at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)

at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)

at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)

at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)

at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)

at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)

at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

log4j:ERROR Either File or DatePattern options are not set for appender [index_search_slow_log_file].

[2017-03-16 13:29:45,447][WARN ][bootstrap ] unable to install syscall filter: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in

Exception in thread “main” java.lang.IllegalStateException: Unable to access ‘path.plugins’ (/usr/local/es/elasticsearch-2.3.5/plugins)

Likely root cause: java.nio.file.AccessDeniedException: /usr/local/es/elasticsearch-2.3.5/plugins

at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)

at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)

at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)

at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)

at java.nio.file.Files.createDirectory(Files.java:674)

at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)

at java.nio.file.Files.createDirectories(Files.java:767)

at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:337)

at org.elasticsearch.bootstrap.Security.addPath(Security.java:314)

at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:246)

at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:212)

at org.elasticsearch.bootstrap.Security.configure(Security.java:118)

at org.elasticsearch.bootstrap.Bootstrap.setupSecurity(Bootstrap.java:196)

at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:167)

at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)

at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

Refer to the log for complete error details.

我看了看這些異常,看的不大明白。但感覺根源問題還是用戶啟動權限哪兒出錯了,於是就上網百度了一下解決的方案。看了一篇文章原來真的是用戶的問題。Elasticsearch是需要一個專門的用戶來管理它的。參考[附],我依照方法創建了一個專門管理elasticsearch的用戶。最後從root切換到新創建的用戶權限下去啟動elasticsearch,最後成功啟動。ES在linux上的安裝、啟動終於成功了,真是費勁周折。

Linux上安裝ElasticSearch

附:

Linux上安裝ElasticSearch

Copyright © Linux教程網 All Rights Reserved