1. 程式人生 > 其它 >Elasticsearch高可用分散式叢集之環境搭建

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
配置檔案上。

  二、節點配置

    配置檔案具體說明可以參考官網。下面簡單介紹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。