1. 程式人生 > >Elasticsearch5.5官方文件翻譯-節點

Elasticsearch5.5官方文件翻譯-節點




概述

章節:Moudles>>Node

任何時候你啟動Elasticsearch的例項時,你啟動一個 節點。連線的節點的集合被稱為一個 叢集。如果您正在執行Elasticsearch的一個節點,那麼你有一個包含一個節點的叢集。

叢集中的每個節點都預設的可以處理HTTP和 Transport 流量。傳輸層專門用於節點們和JavaTransportClient的的通訊 ; HTTP層僅由外部REST客戶端使用。

所有節點都瞭解所有叢集中的其他節點,而且可以轉發客戶端請求到相應的節點。除此之外,每個節點提供一個或多個目的:

  • 主合格的節點
    具有節點node.master設定為true(預設值),這使得它有資格被選為主節點,主節點可以控制該叢集。

  • 資料節點
    具有節點node.data設定為true(預設)。資料節點儲存資料並進行資料相關的操作,如CRUD,搜尋和聚合。

  • 攝取節點
    具有節點node.ingest設定為true(預設)。攝取節點都能夠運用攝取管道,以便建立索引之前轉換和豐富文件。如果想擁有一個重攝取負載,可以使用專用攝取節點然後設定主資料和節點的 node.ingest: false

  • 部落節點
    一個部落節點,通過tribe.*設定,是一種特殊型別的協調,可以連線到多個叢集並在所有連線的叢集執行搜尋和其他操作。

預設情況下,一個節點是主合格的節點和資料節點,再加上它可以通過攝取管道預處理檔案。這對小叢集非常方便,但是,隨著叢集的增長,考慮從專用資料節點分離出專用主節點資格就變得很重要。

注意:協調節點
如搜尋請求或批量索引請求可能涉及到不同的資料節點上儲存的資料。例如搜尋請求,分兩個階段,這是由接收客戶機請求的節點協調執行的,這個節點就叫做協調節點。

在分散階段,協調節點將請求轉發到該儲存資料的資料節點。每個資料節點本地執行的請求,其結果返回到協調節點。在收集 階段,協同節點彙集每個資料節點的結果轉換成一個單一的全球結果集。

每個節點是隱含協調節點。這意味著,節點有下面三個設定node.master,node.data,node.ingest設定為false,則只充當一個協調節點,它不能被禁用。其結果是,這樣一個節點需要有足夠的記憶體和CPU以處理收集階段。

主合格節點

主節點負責輕量的叢集範圍的操作,如建立或刪除的索引,跟蹤哪些節點是群集的一部分,並且決定哪些分片分配給哪些節點,有一個穩定的主節點對叢集的健康是很重要的。

任何主合格的節點(預設情況下所有節點)可能當選成為由主節點通過主選舉程序。

重要
主節點必須能夠訪問該data/目錄(就像 data節點),這樣叢集狀態會在節點重新啟動後在節點之間被保持。

索引和搜尋您的資料是CPU,記憶體 和I / O密集型的工作,這樣會把壓榨一個節點的資源。為了確保您的主節點是穩定的,而不是在壓力下,在一個大的叢集裡分出專用主合格節點和專用資料節點是個好主意。

當然主節點也可以表現為協調節點 和路由搜尋和索引請求從客戶端到資料節點,最好不使用專用的主節點做這個。讓主資格的節點做盡可能少的工作,對叢集的穩定性很重要。

要建立一個專用的主合格的節點,設定:

node.master: true
node.data: false
node.ingest: false

避免腦裂與minimum_master_nodes設定

為了防止資料丟失,配置 discovery.zen.minimum_master_nodes (預設為1)是重要的。為了形成一個叢集。 使得每個主資格節點都知道 主資格的節點的最小數量 。

為了解釋,假設您有由兩個主合格節點的叢集。網路故障打破了這兩個節點之間的通訊。每個節點可以看到一個主合格的節點. 也就是他們.本身。隨著minimum_master_nodes設定為預設1,這樣足以形成一個叢集。每個節點選擇自己作為新的主(認為其他主合格的節點已經掛掉),結果形成了兩個叢集,或腦裂。這兩個節點永遠不會重新加入到一個節點被重新啟動。已經寫入到重新啟動的節點的任何資料都將丟失。

現在,假設你有一個叢集有三個主節點的資格,並 minimum_master_nodes設定為2。如果網路故障分開三個節點中的一個,一個節點這邊不夠的主節點的資格,並意識到它不能選擇自己為master。具有兩個節點的邊將選舉新的master(如果需要),並繼續正常工作。一旦網路拆分得到解決,單個節點將重新加入叢集,並重新開始服務請求。

此設定應遵循一個公式:

(master_eligible_nodes / 2)+ 1

換句話說,如果有三個主資格節點,則最小主節點應設定為(3 / 2) + 1或2:
即:

discovery.zen.minimum_master_nodes:2

此設定還可以動態地改變

PUT _cluster/settings
{
  "transient": {
    "discovery.zen.minimum_master_nodes": 2
  }
}

小提示
分開專用master節點和資料角色的一個優點是,如果你可以有隻有三個主節點資格,並設定minimum_master_nodes到2。你不用再更改此設定,無論你有多少個專用的資料節點新增到叢集。

資料節點

資料節點保留著包含已索引文件的分片。資料節點處理相關操作,比如CRUD,搜尋和彙總資料。這些操作是I / O-,記憶體 - 和CPU密集型。監視這些資源,以及當他們超載
時新增更多的資料節點是很重要的。

具有專用資料節點的主要優點是master和資料節點角色的分離。
要建立一個專用的資料節點,設定:

node.master: false 
node.data: true 
node.ingest: false 

攝取節點

攝取節點可以執行預處理管道,由一個或多個攝取處理器組成。根據攝取處理器和所需的資源執行的操作的型別決定,有專門的攝取節點是有意義的,只會執行這個特定的任務。
要建立一個專用的採集節點,設定:

node.master: false 
node.data: false 
node.ingest: true 
search.remote.connect: false 

只協調節點

如果你去掉 到能master責任,去掉保持資料的能力,去掉預處理檔案,那麼你就留下了一個協調節點,它只能路由請求,處理搜尋收集階段,並分發批量索引。從本質上講,只協調節點表現為智慧負載均衡。

只協調節點對大叢集有益,他們加入叢集,收到完整的群集狀態,像其他的節點,它們使用群集狀態直接路由請求到適當位置。

警告
加入過多的協調會提高整個叢集的負擔,因為master節點,必須從每個節點等待叢集狀態更新!只協調節點的好處不應該被誇大 - 資料節點可以達到同樣的目的。
要建立一個專門的協調節點,設定:

node.master: false 
node.data: false 
node.ingest: false 
search.remote.connect: false 

節點的資料路徑設定

  • path.data

每個資料和主合格的節點需要訪問其中分片和索引和叢集的元資料將被儲存在這個資料目錄。path.data預設是ESHOME/dataelasticsearch.ymlES_HOME如下:

path.data:  /var/elasticsearch/data

像所有的節點設定,也可以在命令列上指定的:

./bin/elasticsearch -Epath.data=/var/elasticsearch/data

小提示
當使用.zip或.tar.gz分發版,path.data設定應配置為定位Elasticsearch主目錄之外的資料目錄,從而使主目錄可以刪除,但不刪除您的資料!rpm和Debian發行版為你已經這樣做了。

  • node.max_local_storage_nodes

path.data可以由多個節點共享,即使是不同的叢集的節點。這對你在開發機器上測試故障轉移和不同的配置是非常有用的。在生產環境中,建議每個伺服器上執行一個節點Elasticsearch的。

預設情況下,Elasticsearch被構造成防止多於一個的節點共享同一資料路徑。要允許多個節點(例如,在開發計算機上),使用設定 node.max_local_storage_nodes和將其設定為一個正整數大於一。

警告
不要執行來自相同資料目錄的不同的節點型別(例如master和data節點)。這會導致意外的資料丟失。

其他節點設定與X-包節點設定 略
(本文完)