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