ElasticSearch 5.5.2安裝和啟動
安裝環境 CentOS release 6.8
1、因Elasticsearch是基於java寫的,所以它的執行環境中需要java的支援,在Linux下執行命令:java -version,檢查Jar包是否安裝
安裝java版本至少是1.8以上
2、首先準備下載Elasticsearch5.5.2 安裝包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz
3、下載到/usr/local 目錄下,解壓
tar -zxvf elasticsearch-5.2.2.tar.gz
4、因為Elasticsearch5.0之後,不能使用root賬戶啟動,我們先建立一個elasticsearch組和賬戶
groupadd elasticsearch #建立elasticsearch使用者組
useradd elasticsearch -g elasticsearch -p elasticsearch #建立使用者elasticsearch所屬組為elasticsearch
chown -R elasticsearch:elasticsearch .#切換到elasticsearch-5.2.2同級目錄,變更該資料夾擁有 .代表當前資料夾
5、啟動elasticsearch
cd /usr/local/elasticsearch5.2.2/
su elasticsearch #更改使用者為elasticsearch
./bin/elasticsearch
啟動報錯①
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
由於elasticsearch5.0預設分配jvm空間大小為2g,修改jvm空間分配
vi config/jvm.options
將檔案中
-Xms2g
-Xmx2g
修改為
-Xms512m
-Xmx512m
啟動報錯②
unable to install syscall filter:
java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
因為Centos6不支援SecComp,而ES預設bootstrap.system_call_filter為true進行檢測,所以導致檢測失敗,失敗後直接導致ES不能啟動。詳見 :https://github.com/elastic/elasticsearch/issues/22899
解決方法:在elasticsearch.yml中配置bootstrap.system_call_filter為false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
啟動報錯③
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
原因:無法建立本地檔案問題,使用者最大可建立檔案數太小
解決方法:切換到root使用者,編輯limits.conf配置檔案, 新增類似如下內容:
su root #切換到root使用者 需要輸入密碼
vi /etc/security/limits.conf
新增如下內容:
* soft nofile 65536
* hard nofile 65536
然後使用者切換到elasticsearch執行
ulimit -Hn
如果顯示65536即可 否則重新登入或重啟
啟動報錯④
max number of threads [1024] for user [lish] likely too low, increase to at least [2048]
原因:無法建立本地執行緒問題,使用者最大可建立執行緒數太小
解決方法:
切換到root使用者,編輯limits.conf配置檔案, 新增類似如下內容
su root #切換到root使用者 需要輸入密碼
vi /etc/security/limits.d/90-nproc.conf
修改如下內容:
* soft nproc 1024
修改為
* soft nproc 2048
啟動報錯⑤
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解決方法:
[root@modelhost ~]# vi /etc/sysctl.conf
最下面新增
vm.max_map_count=262144
執行
sysctl -p
啟動報錯⑥
使用elasticsearch叢集時 如果出現下面的錯誤
main ERROR Could not register mbeans java.security.AccessControlException:
access denied ("javax.management.MBeanTrustPermission" "register"
意思是當前使用者沒有這個資料夾的操作許可權 給當前使用者授權即可
[root@model es_slave]# chown -R elasticsearch:elasticsearch .
這時使用上面 的命令啟動,出現下圖則啟動成功
開啟另一個終端執行
curl http://localhost:9200
返回:
至此,elasticsearch單個節點安裝完成。