天天看點

ElasticSearch單機搭建與啟動(避坑全書)安裝啟動過程啟動過程中可能遇見的問題

  • 安裝啟動過程
  • 啟動過程中可能遇見的問題
    • 1JVM記憶體問題
    • 2根權限執行問題
    • 3Es使用者權限不足
    • 4記憶體問題

工作需要,學習了一下ElasticSearch的搭建,過程中碰到很多問題,查了不少資料,在此做個彙總,也希望給後人鋪個路~

  • Es版本:5.6.3

安裝啟動過程

1.首先安裝java(jdk1.7或1.8都可以),并配置環境變量。(原來有安裝配置過的略過此步)

2.使用curl指令下載下傳es:

$ curl -L -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch/elasticsearch-5.6.3.tar.gz
           

然後使用 $tar xzf elasticsearch-5.6.3.tar.gz解壓es。

3.修改通路es的ip及端口

# vim /usr/local/elasticsearch/elasticsearch-5.6.3/config/elasticsearch.yml
           
ElasticSearch單機搭建與啟動(避坑全書)安裝啟動過程啟動過程中可能遇見的問題

如圖将host與port參數配置的注釋取消,并配置host為本機ip即可:

4.進入解壓出來的es目錄的bin下,啟動es節點和單叢集:

$ ./elasticsearch
           

5.啟動成功後,在web浏覽器中輸入192.168.179.129:9200,如果傳回以下頁面,則說明成功。

ElasticSearch單機搭建與啟動(避坑全書)安裝啟動過程啟動過程中可能遇見的問題

或者在shell中直接curl http://192.168.179.129:9200,如果傳回以下資訊也說明成功:

ElasticSearch單機搭建與啟動(避坑全書)安裝啟動過程啟動過程中可能遇見的問題

啟動過程中可能遇見的問題

(1)JVM記憶體問題

如果遇到:

ElasticSearch單機搭建與啟動(避坑全書)安裝啟動過程啟動過程中可能遇見的問題

說明jvm啟動記憶體太大,機器記憶體不足(如果按照之前虛拟機配置中的1G來配置,則會出現此問題,因為es預設jvm啟動記憶體是2g,是以我們需要配置一下es的啟動記憶體)

編輯es/config/jvmoptions檔案,修改以下兩個參數:

#-Xms2g
#-Xmx2g
-Xms512m
-Xmx512m
           

(2)根權限執行問題

如果遇到:

ElasticSearch單機搭建與啟動(避坑全書)安裝啟動過程啟動過程中可能遇見的問題

根據提示,無法以根權限啟動es程式,是以我們建立一個非根使用者,并給它賦予目錄該使用者權限。

# groupadd es
# useradd es -g es -p es
# chown -R es:es /usr/local/elasticsearch/
# sudo su es
           

再為建立的es使用者配置一下環境變量,将之前root使用者的内容拷貝過來(主要是java的環境變量):‘

# vim ~/.bash_profile

# java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_91
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
           

用source指令使配置生效:

# source ~/.bash_profile
           

再次啟動es。

(3)Es使用者權限不足:

如果遇到:

ElasticSearch單機搭建與啟動(避坑全書)安裝啟動過程啟動過程中可能遇見的問題

這是在之前root使用者給es使用者賦權時沒有完全将es目錄的所有檔案權限給es,重新用root使用者身份執行:(-R參數不要掉,表示遞歸将es目錄下所有檔案權限給es使用者)

# chown -R es:es /usr/local/elasticsearch/

(4)記憶體問題:

ElasticSearch單機搭建與啟動(避坑全書)安裝啟動過程啟動過程中可能遇見的問題

有[1][2][3]三個問題,逐一解決:

[1]: initial heap size [16777216] not equal to maximum heap size [257949696]; this can cause resize pauses and prevents mlockall from locking the entire heap

第一個問題還是jvm記憶體問題,請重新檢查可能碰到的問題(1)JVM記憶體問題,按照步驟重新檢查一遍。

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

Es程序設定的最大檔案描述符太小,需要增加。

編輯/etc/security/limits.conf,最後加上:

es soft nofile 65536

es hard nofile 65536

然後重新連接配接shell,切換到es使用者,再嘗試啟動es。

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

是以為作業系統的vm.max_map_count參數設定太小導緻的,請使用root使用者登入系統,執行以下指令:

sysctl -w vm.max_map_count=262144

并用以下指令檢視是否修改成功

sysctl -a | grep “vm.max_map_count”

如果能正常輸出262144,則說明修改成功

繼續閱讀