1. 程式人生 > >ElasticSearch的安裝與配置

ElasticSearch的安裝與配置

ES安裝(基於java執行環境)

      1 獲取安裝包

            雲主機和虛擬機器的es安裝資源 elasticsearch-5.5.2.tar包都在/home/resources

      2 tar命令解壓安裝包

            #tar -xf **.tar包直接解壓到當前檔案,形成一個資料夾保管es的所有內容

            

      3 添加當前主機的普通賬戶

            #groupadd es

            #useradd es -g es -p es

            

            解釋:root為最高許可權的管理員使用者,es在啟動時不允許使用root使用者,所以我們建立一個普通賬戶es,

                      登入密碼es來管理elasticsearch的啟動和呼叫,從此處開始#的命令表示root使用者執行,

                      $的命令提示表示普通使用者

      4 root使用者個es使用者新增操作訪問elasticsearch的許可權

            #chown -R es:es elasticsearch-5.5.2

            

            使用者的切換命令為:

            #su[空格]es root切換到普通使用者es

            

            $su[空格]root 從普通使用者切換到root需要輸入密碼

            注意:這裡的密碼是忙敲,沒有字元提示

            

      5 修改es啟動佔用的記憶體空間(雲主機一般不需要)

            解釋:預設情況下,es啟動互檢測記憶體2G,對雲主機記憶體不足的情況有所限制,虛擬機器更需要修改,

                      需要修改佔用的記憶體空間,512M已經足夠了

            修改es根目錄下config目錄的jvm.options

                  #vim jvm.options

                  

 

                 

      6 嘗試啟動es測試

            在es的根目錄的bin目錄下執行啟動檔案命令elasticsearch

            $elasticsearch

           

            出現如下內容,es啟動成功

           

            es啟動後,提供一個9200的埠進行http協議訪問,這裡可以呼叫linux的curl命令測試es程式,

            但是沒有開啟對外訪問的設定,只能使用localhost訪問

            #curl localhost:9200

           

 

      啟動異常:原因是linux版本導致,不影響使用後續解決

            unable to install syscall filter:

            java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel,

            CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed

           

            在elasticsearch.yml中配置bootstrap.system_call_filter為false,注意要在Memory下面:

            42行:bootstrap.memory_lock: false

            新增:bootstrap.system_call_filter: false

            #vim elasticsearch.yml

           

      7 後臺啟動和關閉es

            關閉

            在前面使用的啟動過程中,es的啟動程式佔用了控制檯,如果需要關閉直接ctrl+c停止控制檯使用即可,

            預設的啟動方式並不方便,佔用的控制檯一旦關閉會造成es程式停止,所以需要後臺啟動

            後臺啟動

            動態觀察日誌

            #tail -f ***.log

            在普通使用者執行啟動命令時新增-d的選項表示後臺執行

            $elasticsearch -d

           

            使用crul測試依然成功表示程式正常執行

            #curl localhost:9200

           

 

            關閉後臺啟動的程序

            呼叫java的jps命令檢視啟動的jvm程序

            #jps

           

            或者直接呼叫linux檢視程序命令

            #ps -ef|grep elasticsearch

            無論是哪個命令都是為了找到es啟動的id號

           

            確定pid後直接呼叫kill命令殺掉程序即可關閉es

            #kill 17381

           

            安裝啟動es到此結束

尚存的問題

      無法對外提供訪問和使用

      通過內部命令可以訪問es程序,但是從外網訪問ip+埠訪問無效

      沒有叢集提供高可用

      單點的es可以完成建立索引,搜尋功能,但是高可用叢集才是es的使用途徑

ES配置

      配置檔案elasticsearch.yml詳解

            在es根目錄下的config目錄中有elasticsearch.yml配置檔案,es載入使用的yml格式配置

 

            17行:cluster.name: 自定義叢集名稱(強烈推薦預設名稱elasticsearch)

            解釋:es的執行都是以叢集形式啟動的,預設情況也會有叢集名稱elasticsearch

            es的discovery模組會自動發現在同一個網路通訊區間內下的es節點,

            如果在同一個網段下有多個叢集,可以利用叢集名稱來區分

            

 

            23行:node.name: 自定義節點名稱

            當前啟動的es程序表示一個節點,配置當前節點名稱,預設隨機名稱

            

 

            33行:path.data: 索引資料儲存位置(保持預設,不要開啟註釋)

            解釋:預設是es根目錄下的data資料夾,可以設定多個儲存路徑,用“,”隔開即可,

                      例如:path.data:/path01,/path02 

            如果開啟,必須是ES使用者的管理路徑內

 

            37行:path.logs: 日誌路徑(保持預設,不要開啟注釋)

 

            #ip(用ip未啟動成功,換成127.0.0.1如果沒問題<說明服務已OK>,在換成如下地址,外網可訪問)  

            55行左右:network.host: 當前es節點繫結的ip地址

            解釋:預設127.0.0.1,如果需要開放對外訪問這個屬性必須設定,可以繫結本機對外訪問ip 

            

  

            59行:http.port: 啟動的es對外訪問的http埠,預設9200

            開放並且設定自定義埠

            

 

            按照如上內容vim便捷elasticsearch.yml檔案儲存退出

 

      啟動es的環境問題

            由於linux版本不一致,環境配置不一致,可能在啟動時出現如下問題

            

 

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

            原因:預設的最大可建立執行緒數是1024,不滿足es程式的要求,設定為2048即可

            #vim[空格]/etc/security/limits.d/90-nproc.conf

            

 

            [2]: 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=655360

            

            儲存退出執行命令

            #sysctl[空格]-p

 

            除了以上幾個問題的出現,有可能根據環境不同出現不同問題,

            根據問題的提示找到ERROR,然後參照資料進行修改即可