Elasticsearch高可用分散式叢集之環境搭建
對於叢集這個概念,通過前面的MySQL和MongDB的實踐應該不會陌生了。ES同樣可以搭建叢集環境,其架構遵循其基本概念:一個採用Restful API標準的高擴充套件性和高可用性的實時資料分析的全文搜尋引擎。
ES叢集架構特點具化來說就是:
1)高擴充套件性:體現在Elasticsearch新增節點非常簡單,新節點無需做複雜的配置,只要配置好叢集資訊將會被叢集自動發現。
2)高可用性:因為Elasticsearch是分散式的,每個節點都會有備份,所以宕機一兩個節點也不會出現問題,叢集會通過備份進行自動覆盤。
3)實時性:使用倒排索引來建立儲存結構,搜尋時常在百毫秒內就可完成。
ES叢集具體搭建實操如下:
搭建一個三個節點的叢集環境,為了實踐操作,三臺只臺伺服器上進行操作:一主兩從。因為在虛擬機器上,需要注意調整虛擬機器記憶體大小不至於影響ES的正常執行。
一、節點搭建
ES中節點是什麼?其實在Elasticseach初識及其Single-Node Mode快速部署 - 池塘裡洗澡的鴨子 - 部落格園 (cnblogs.com)中,本質就是搭建了一個node。一個ES例項即一個Node,一臺機器可以有多個例項,正常使用下每個例項都應該會部署在不同的機器上。
所以三個節點的搭建可以參考Elasticseach初識及其Single-Node Mode快速部署 - 池塘裡洗澡的鴨子 - 部落格園 (cnblogs.com)
配置檔案上。
二、節點配置
配置檔案具體說明可以參考官網。下面簡單介紹elasticsearch.yml配置檔案說明中涉及本案例叢集搭建相關內容:
1、第一個節點作為主節點進行配置
2、第二、第三個節點作為從節點進行配置
其他與上面主節點配置保持一致,修改node.name分別為node-2,node-3
啟動主從節點,需要注意的是如果是通過修改已存在節點進行的叢集配置,需要將path.data路徑下的資料清空,否則無效。
簡單驗證:192.168.XXX.XXX:9200/_cat/health?v
三、驗證主從環境
對於主從節點是否出於正常的工作狀態進行驗證,需要藉助工具es-head外掛。首先安裝這個外掛,因為這個外掛是node.js的前端工廠,所以需要很多關於node.js的準備工作:
1、安裝node.js:yum -y install nodejs
2、phantom.js的安裝配置:wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
注意安裝bzip2:
3、下載es-head:git clone https://github.com/mobz/elasticsearch-head.git
4、elasticsearch-head發現主機 並連線 elasticsearch.yml配置檔案修改:
之前已經設定過,此處不再處理。
5、啟動:npm run start
es-head目錄下執行:
如果執行不成功,一定新增如下依賴:
啟動成功後,開啟網址:
之後輸入叢集網址:
可以看到es-head成功訪問了本文中定義的叢集my-escluster。