【ElasticSearch系列(一)】Centos7中安裝配置ElasticSearch6.3.0

一、安裝jdk

由於運行elasticsearch要有jdk支持,因此需要先安裝jdk。

二、官網下載elasticsearch

進入官方網站 https://www.elastic.co/downloads/elasticsearch
下載elasticsearch-6.3.0.tar.gz包。選擇該包並上傳到centos系統中,上傳目錄爲/home/es(es爲新建目錄)。

三、安裝與配置elasticsearch

1、進入 /home/es 目錄解壓elasticsearch

[elastic@localhost ~]$ cd /home/es
[elastic@localhost es]$ tar -zxvf elasticsearch-6.3.0.tar.gz

2、啓動elasticsearch

[elastic@localhost ~]$ sh /home/es/elasticsearch-6.3.0/bin/elasticsearch

運行後,報錯如下:

[2019-03-02T18:10:12,452][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:140) ~[elasticsearch-6.3.0.jar:6.3.0]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.3.0.jar:6.3.0]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.3.0.jar:6.3.0]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.3.0.jar:6.3.0]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.3.0.jar:6.3.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.3.0.jar:6.3.0]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.3.0.jar:6.3.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.3.0.jar:6.3.0]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.3.0.jar:6.3.0]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.3.0.jar:6.3.0]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.3.0.jar:6.3.0]
… 6 more

從報錯信息可以看出,是不能用root用戶來啓動的,因此我們創建一個用戶來啓動它。

新建elastic用戶 並把elasticsearch-6.3.0安裝目錄權限賦予給elastic 用戶
[root@localhost ~]# useradd elastic
[root@localhost ~]# chown -R elastic:elastic /home/es/elasticsearch-6.3.0

從root用戶切換到elastic用戶

[root@localhost ~]# su elastic

接着運行elasticsearch。運行有兩種方式,如下:

方式1:前臺運行

[elastic@localhost root]$ sh /home/es/elasticsearch-6.3.0/bin/elasticsearch

如果出現很多info 則說明成功了,但是這種方式影響操作其他功能。

方式2:後臺運行

先ctrl+c退出方式1的執行過程,運行以下命令

[elastic@localhost root]$ sh /home/es/elasticsearch-6.3.0/bin/elasticsearch -d

檢查elasticsearch是否處於啓動狀態,運行以下命令

[elastic@localhost root]$ ps -ef|grep elasticsearch

elastic 66094 1 96 18:25 pts/0 00:00:02 /home/java/jdk1.8.0_144/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch.F70g5tZC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Des.path.home=/home/es/elasticsearch-6.3.0 -Des.path.conf=/home/es/elasticsearch-6.3.0/config -Des.distribution.flavor=default -Des.distribution.type=tar -cp /home/es/elasticsearch-6.3.0/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
elastic 66141 59565 0 18:25 pts/0 00:00:00 grep --color=auto elasticsearch

注意:啓動時經常會出現如下錯誤(解決方法見下面第五步)

ERROR: [2] bootstrap checks failed

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

接着我們來驗證下服務是否正常運行 curl http://localhost:9200
[root@localhost ~]# curl http://localhost:9200

{
“name” : “sHXZr4u”,
“cluster_name” : “elasticsearch”,
“cluster_uuid” : “8JmmBarGTRG6rn3agEzW7w”,
“version” : {
“number” : “6.3.0”,
“build_flavor” : “default”,
“build_type” : “tar”,
“build_hash” : “424e937”,
“build_date” : “2018-06-11T23:38:03.357887Z”,
“build_snapshot” : false,
“lucene_version” : “7.3.1”,
“minimum_wire_compatibility_version” : “5.6.0”,
“minimum_index_compatibility_version” : “5.0.0”
},
“tagline” : “You Know, for Search”
}
出現這個結果,則說明服務正常運行。

注意:如果出現以下報錯信息,則需要檢查9200端口是否打開
curl: (7) Failed connect to localhost:9200; Connection refused

查看9200端口是否打開:netstat -tunpl | grep 9200

四、允許外網連接配置

前面我們配置的僅是本機使用 但我們需要比如集羣以及其他機器連接 ,則需要配置以下內容。

1)修改 /home/es/elasticsearch/config/elasticsearch.yml 文件

2)把 network.host 和 http.port 前面的 備註去掉 然後Host改成你的局域網IP即可
在這裏插入圖片描述
3)關閉防火牆
關閉:systemctl stop firewalld.service
禁止防火牆開機啓動:systemctl disable firewalld.service

4)重啓下elasticsearch服務

  • 找到進程號,命令:ps -ef | grep elasticsearch
  • 殺死進程,命令:kill -9 進程號
  • 後臺重啓服務,命令:sh /home/es/elasticsearch-6.3.0/bin/elasticsearch -d
    在這裏插入圖片描述
    出現以上的結果,則elasticsearch整個配置過程就完成了。

五、解決啓動報錯

報錯信息1:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

解決方法:

修改/etc/security/limits.conf文件,添加或修改如下行: (請切換到root用戶 然後強制修改文件)
在這裏插入圖片描述
報錯問題2:

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決方法:

修改 /etc/sysctl.conf 文件,文件最後添加 vm.max_map_count=2621441保存,然後運行sudo sysctl -p /etc/sysctl.conf 或者 /sbin/sysctl -p /etc/sysctl.conf 立即生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章