1. 程式人生 > >Elasticsearch 5.X叢集多節點角色分析

Elasticsearch 5.X叢集多節點角色分析

轉自:https://blog.csdn.net/laoyang360/article/details/78290484

1、問題引出
      ES5.X節點型別多了ingest節點型別。 
      針對3個節點、5個節點或更多節點的叢集,如何配置節點角色才能使得系統性能最優呢? 


2、ES2.X及之前版本節點角色概述


3、ES5.X節點角色清單

      由於其他幾種型別節點和用途都很好理解,無非主節點、資料節點、路由節點。

Ingest的用途: 


      1)Ingest節點和叢集中的其他節點一樣,但是它能夠建立多個處理器管道,用以修改傳入文件。類似 最常用的Logstash過濾器已被實現為處理器。

      2)Ingest節點 可用於執行常見的資料轉換和豐富。 處理器配置為形成管道。 在寫入時,Ingest Node有20個內建處理器,例如grok,date,gsub,小寫/大寫,刪除和重新命名。

      3)在批量請求或索引操作之前,Ingest節點攔截請求,並對文件進行處理。 
       這樣的處理器的一個例子可以是日期處理器,其用於解析欄位中的日期。 
       另一個例子是轉換處理器,它將欄位值轉換為目標型別,例如將字串轉換為整數。

4、ES5.X節點組合型別有多種型別,如何抉擇?
      Elasticsearch的員工 Christian_Dahlqvist解讀如下:

        一個節點的預設配置是:主節點+資料節點兩屬性為一身。對於3-5個節點的小叢集來講,通常讓所有節點儲存資料和具有獲得主節點的資格。你可以將任何請求傳送給任何節點,並且由於所有節點都具有叢集狀態的副本,它們知道如何路由請求。

        通常只有較大的叢集才能開始分離專用主節點、資料節點。 對於許多使用者場景,路由節點根本不一定是必需的。

        專用協調節點(也稱為client節點或路由節點)從資料節點中消除了聚合/查詢的請求解析和最終階段,並允許他們專注於處理資料。 
        在多大程度上這對叢集有好處將因情況而異。 通常我會說,在查詢大量使用情況下路由節點更常見。

5、ES5.X叢集中如何設定節點角色
對於3個節點、5個節點甚至更多節點角色的配置,Elasticsearch官網、國內外論壇、部落格都沒有明確的定義。 
 
我的思考如下: 
    1)對於Ingest節點,如果我們沒有格式轉換、型別轉換等需求,直接設定為false。 
    2)3-5個節點屬於輕量級叢集,要保證主節點個數滿足((節點數/2)+1)。 
    3)輕量級叢集,節點的多重屬性如:Master&Data設定為同一個節點可以理解的。 
    4)如果進一步優化,5節點可以將Master和Data再分離。

6、小結
     1)Elasticsearch博大精深,尤其新的5.X特性比較多,需要進一步深入研究; 
     2)叢集的配置還有賴於進一步事件總結,再好的理論部署實踐都是“花瓶”; 
     3)貌似圖示劃分了這麼細、寫了那麼多,以官網為基準,也順帶調研了N多文件,但對Ingest節點的作用依然理解的不夠深。希望大家評論探討下。

參考: 
[1]https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#data-node 
(5.x官網) 
[2] https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-node.html 
(2.x官網) 
[3] https://discuss.elastic.co/t/master-and-client-node-role-clarifications/104036/2 
(ES員工回覆) 
[4] https://blog.trifork.com/2017/02/02/elasticsearch-ingest-node/ 
(ingest節點使用詳解) 
[5] https://wenchao.ren/archives/375 
(官網原文翻譯) 
[6] http://www.cnblogs.com/liang1101/p/7284205.html