1. 程式人生 > >ubuntu安裝elasticsearch

ubuntu安裝elasticsearch

一、Java環境

Elasticsearch是用Java語言編寫的,所以首先確保機器上已經安裝了Java環境。官方文件指出,至少需要Java 7,本文中使用java8。

二、下載Elasticsearch

在官網https://www.elastic.co/downloads/elasticsearch下載安裝包,本文下載的是elasticsearch-6.4.3.tar.gz,將下載的安裝包上傳至伺服器上。

三、解壓

tar zxvf elasticsearch-6.4.3.tar.gz -C /usr/local

四、執行

(1) 定位至安裝目錄:

cd /usr/local/elasticsearch-6.4.3/

(2) 執行

./bin/elasticsearch

五、錯誤解決

  • java記憶體空間不足或檔案許可權不足:
Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/elasticsearch-6.4.3/config/jvm.options
        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.newByteChannel(UnixFileSystemProvider.java:214)
        at java.nio.file.Files.newByteChannel(Files.java:361)
        at java.nio.file.Files.newByteChannel(Files.java:407)
        at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
        at java.nio.file.Files.newInputStream(Files.java:152)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:60)

解決:
(1) 切換到root賬戶,修改/usr/local/elasticsearch-6.4.3/config/jvm.options檔案的Xms和Xmx的配置:

-Xms512m
-Xmx512m

(2) 修改檔案許可權

sudo chmod 644 jvm.options
  • root賬號啟動報錯
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.4.3.jar:6.4.3]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.4.3.jar:6.4.3]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.4.3.jar:6.4.3]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.4.3.jar:6.4.3]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.4.3.jar:6.4.3]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.4.3.jar:6.4.3]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.4.3.jar:6.4.3]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.4.3.jar:6.4.3]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.4.3.jar:6.4.3]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.4.3.jar:6.4.3]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.4.3.jar:6.4.3]
        ... 6 more

解決:切換到普通使用者重啟啟動。

  • 啟動過程中提示
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2018-11-23T10:00:28,057][INFO ][o.e.n.Node               ] [mQQdX2p] stopping ...
[2018-11-23T10:00:28,100][INFO ][o.e.n.Node               ] [mQQdX2p] stopped
[2018-11-23T10:00:28,101][INFO ][o.e.n.Node               ] [mQQdX2p] closing ...
[2018-11-23T10:00:28,111][INFO ][o.e.n.Node               ] [mQQdX2p] closed

解決:
(1) 修改配置sysctl.conf

vim /etc/sysctl.conf

(2) 新增下面配置:

vm.max_map_count=655360

(3) 配置生效:

sysctl -p

六、設定外網訪問

(1) 進入/usr/local/elasticsearch-6.4.3/config目錄,編輯檔案elasticsearch.yml,增加配置network.host: 0.0.0.0
命令如下:

vim  elasticsearch.yml

Insert進入編輯模式,增加network.host: 0.0.0.0,修改完成之後Esc退出編輯模式,執行:wq儲存並退出,重啟啟動即可。
啟動成功後,在瀏覽器訪問:http://IP地址:9200/,出現以下配置表示安裝成功。

name	"mQQdX2p"
cluster_name	"elasticsearch"
cluster_uuid	"em-fVPdIRLeG4BZAkdRarA"
version	
number	"6.4.3"
build_flavor	"default"
build_type	"tar"
build_hash	"fe40335"
build_date	"2018-10-30T23:17:19.084789Z"
build_snapshot	false
lucene_version	"7.4.0"
minimum_wire_compatibility_version	"5.6.0"
minimum_index_compatibility_version	"5.0.0"
tagline	"You Know, for Search"

七、後臺執行

為了在關閉終端的時候,讓Elasticsearch繼續保持執行,需要設定使es在後臺執行。
切換到安裝目錄下,執行。

bin/elasticsearch -d