Elasticsearch 節(jié)點角色

一個Elasticsearch實例代表了一個ES 節(jié)點,如果不通過 node.roles 設(shè)置節(jié)點的角色,一個ES節(jié)點默認(rèn)的節(jié)點角色有:master 、data 、data_content、data_hot、data_warm、data_cold、ingest、ml、remote_cluster_client。

Master-eligible node
該節(jié)點擁有master 角色,能夠在集群故障時被選舉為master node,master node負(fù)責(zé)創(chuàng)建、刪除索引,追蹤集群中的節(jié)點,并確定每個node的shard分配。master node必須有data目錄的權(quán)限,因為data目錄存放了集群的狀態(tài)信息。

Dedicated Master-eligible node
master node擁有足夠的硬件資源去履行它的職責(zé)對于整個集群健康運行至關(guān)重要,索引和搜索數(shù)據(jù)是非常耗資源的操作,在大集群和高吞吐量的集群中,應(yīng)該避免讓Master-eligible nodes執(zhí)行這類任務(wù)。為此可以創(chuàng)建三個專用節(jié)點,只有master角色,作為Master-eligible node,配置為:

node.roles: [ master ]

Voting-only master-eligible node
Voting-only master-eligible node在master node的選舉過程中參與投票,但是不會作為候選人被選為master node,如下配置該節(jié)點為voting-only master-eligible node,只有具有master角色的節(jié)點,才能被標(biāo)記擁有voting-only角色。voting-only nodes不會被選舉為master node并履行相應(yīng)功能,所以對于內(nèi)存和CPu要求較低,但是相比于集群中其他node,所有的master-eligible nodes也包括voting-only nodes都需要相當(dāng)快速的磁盤以及可靠、低延遲的網(wǎng)絡(luò),以便于更新集群狀態(tài)。

node.roles: [  master, voting_only ]

Data node
該節(jié)點擁有 data 角色,Data node保存索引數(shù)據(jù),并且執(zhí)行數(shù)據(jù)相關(guān)的操作:CRUD、search搜索、聚合搜索等,這些操作都比較耗費I/O、內(nèi)存和CPU資源,在資源不夠的情況下應(yīng)該合理添加data node,一個擁有data角色的節(jié)點可以覆蓋任何特定的data node細(xì)分角色。單獨劃分data node的好處是可以將master 和data角色區(qū)分開。

node.roles: [ data ]

在多層級業(yè)務(wù)場景部署架構(gòu)下,可以根據(jù)不同層級給data node分配更加細(xì)分的角色:data_content,data_hot, data_warm, data_cold。

Content data node
該角色的nodes會處理用戶創(chuàng)建的文檔內(nèi)容,包括CRUD、數(shù)據(jù)搜索和聚合等。

node.roles: [ data_content ]

Hot data node
該角色的nodes會根據(jù)數(shù)據(jù)進入ES的時間存儲時序數(shù)據(jù),hot層對數(shù)據(jù)讀寫要求較快,可以使用SSD。

node.roles: [ data_hot ]

Warm data node
該角色的nodes會存儲不再被經(jīng)常更新但是仍然被查詢的索引數(shù)據(jù),相比較于在hot層數(shù)據(jù)查詢的頻率要低。

node.roles: [ data_warm ]

Cold data node
該角色的nodes會存儲很少被獲取的只讀索引,該層耗費資源少,可以搜索快照索引減少資源需求。

node.roles: [ data_cold ]

Ingest node
該節(jié)點擁有 ingest 角色,Ingest node可以在文檔索引之前執(zhí)行ingest pipeline,進行數(shù)據(jù)清洗、字段填充等工作,對于數(shù)據(jù)預(yù)處理較為復(fù)雜,負(fù)載較重的ingest來說,應(yīng)該單獨部署ingest node。

node.roles: [ ingest ]

Remote-eligible node
改節(jié)點擁有remote_cluster_client角色,可以充當(dāng)遠(yuǎn)程客戶端,默認(rèn)情況下,集群內(nèi)任意節(jié)點都可以作為跨集群的客戶端連接到遠(yuǎn)程集群。

Machine learning node
該節(jié)點擁有ml角色,并且 xpack.ml.enabled 開關(guān)打開,如果需要使用機器學(xué)習(xí)功能,集群內(nèi)至少需要有一個機器學(xué)習(xí)節(jié)點。

node.roles: [ remote_cluster_client ]

Transform node
改節(jié)點擁有transform角色,如果想要使用transforms功能,集群中只是需要一個transform node。

Coordinating node
協(xié)調(diào)節(jié)點負(fù)責(zé)處理所有來自客戶端的請求以及返回給客戶端的響應(yīng)結(jié)果,默認(rèn)情況下每個node都是協(xié)調(diào)節(jié)點。如果將node按功能分配角色:master node處理主節(jié)點事務(wù)、data node保存數(shù)據(jù)、ingest node進行數(shù)據(jù)預(yù)處理,那么coordinating node則是 route 客戶端請求、處理搜索數(shù)據(jù)整合階段并且分配批量索引操作 bulk indexing??梢詫ode配置為 Coordinating only node,讓該節(jié)點作為一個負(fù)載均衡器。添加過多的Coordinating only node會給集群帶來負(fù)擔(dān),因為master node需要等待集群state信息更新到了所有節(jié)點。其實,data node就可以很好的充當(dāng)協(xié)調(diào)節(jié)點。

node.roles: [ ]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容