1. 程式人生 > >centos安裝elasticsearch6.5與安裝問題解決

centos安裝elasticsearch6.5與安裝問題解決

centos安裝elasticsearch6.5與安裝問題解決

前言

在安裝elasticsearch之前需要保證系統已經配置了java環境,而且由於6.5版本在jdk1.7版本下執行是會提示1.8所有安裝的javajdk版本需要1.8以上。

步驟

(一)安裝java
我們採用懶人一鍵安裝形式:借用yum安裝,而且此方法安裝也少去配置系統環境。
1.檢視centos自帶的jdk是否已安裝,並確保是否為1.8版本以上
命令列輸入:

yum list installed|grep java

檢視是否帶有java,如果沒有則啥都不輸出。
如果沒有或者版本低想解除安裝則:
命令列輸入:

解除安裝jdk相關檔案輸入:yum -y remove java-1.*.*-openjdk*
解除安裝tzdata-java輸入:yum -y remove tzdata-java.noarch
注:前面兩個*號代表根據不同版本的jdk,第三個“*”表示java-1.*.*下的所有openjdk相關檔案

2.檢視yum庫中的java安裝包
輸入:

yum -y list java* 或者 yum -y search java*

3.安裝所有相關java程式

yum -y install java-1.8.0-openjdk*

如果無錯誤資訊,證明安裝成功。
4.檢視安裝的java版本資訊

java -version 可檢視java版本
javac 可檢視java的編輯器命令用法

(二)安裝elasticsearch
1.es的yum安裝配置
新增es在yum的本地源
(1)下載並安裝公共簽名金鑰

rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

(2)配置es的yum源
首先需要建立/etc/yum.repos.d/elasticsearch.repo
輸入下面內容:

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=
https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1

注:網上有的配置檔案內容為:

[elasticsearch-5.x]
name = Elasticsearch repository for5.x packages
baseurl = http://packages.elastic.co/elasticsearch/5.x/centos
gpgcheck = 1
gpgkey = http://packages.elastic.co/GPG-KEY-elasticsearch
enabled = 1

但我用網上的配置內容,提示url不可用,所以使用了新的url。
2.安裝elasticsearch
(1)更新yum的快取

yum makecache

(2)安裝ES

yum install elasticsearch

(3)新增到啟動服務中

chkconfig --add elasticsearch

3.相關係統配置
vi /etc/security/limits.conf

新增如下內容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096*”號代表所有非root使用者檔案數和程序數
注:一開始soft nproc輸入的2048報數量太少,所以就提升為4096.

vi /etc/security/limits.d/90-nproc.conf

修改如下內容:
* soft nproc 1024
為:
* soft nproc 2048

vi /etc/sysctl.conf

新增下面配置:
vm.max_map_count=262144
並執行:
sysctl -p

vi /etc/elasticsearch/elasticsearch.yml

#叢集名(同一個叢集,名稱必須相同)
cluster.name: my-application
#服務節點名(每個服務節點不一樣)
node.name: node-1
#資料儲存路徑
path.data: /data/elasticsearch/data
#服務日誌路徑
path.logs: /data/elasticsearch/logs
#服務ip地址
network.host: 0.0.0.0
#服務埠
http.port: 9200
預設路徑:/etc/sysconfig/elasticsearch
#設定為可用記憶體的50%
ES_HEAP_SIZE = 1g
#因為Centos6不支援SecComp,而ES預設bootstrap.system_call_filter為true進行檢測,所以導致檢測失敗,失敗後直接導致ES不能啟動。
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#

4.啟動elasticsearch

service elasticsearch start

檢視啟動狀態:

service elasticsearch status

如果想檢視具體的log資訊:

cat /var/log/elasticsearch/elasticsearch.log

5.啟動elasticsearch6.5啟動錯誤解決
(1)

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)

由於elasticsearch6.5預設分配jvm空間大小為1g,修改jvm空間分配:
vim /etc/elasticsearch/jvm.options

-Xms1g
-Xmx1g
修改為:
-Xms512m
-Xmx512m

(2)

max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]

vim /etc/security/limits.d/90-nproc.conf

*          soft    nproc     1024
修改為
*          soft    nproc     2048

(3)

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

vim /etc/sysctl.conf

追加:vm.max_map_count=262144
並執行命令:
sysctl -p

(4)

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

vi /etc/security/limits.conf

*        hard    nofile           65536
*        soft    nofile           65536

(5)

ERROR: bootstrap checks failed

原因:因為Centos6不支援SecComp,而ES預設bootstrap.system_call_filter為true進行檢測,所以導致檢測失敗,失敗後直接導致ES不能啟動。
解決方法:
vi /etc/elasticsearch/elasticsearch.yml

bootstrap.memory_lock: false
bootstrap.system_call_filter: false