<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          干貨 | Elasticsearch 8.X 節(jié)點(diǎn)角色劃分深入詳解

          共 5954字,需瀏覽 12分鐘

           ·

          2022-05-16 02:28

          0、問(wèn)題引出

          如果你的 Elasticsearch 集群是 7.9 之前的版本,在配置節(jié)點(diǎn)的時(shí)候,只會(huì)涉及節(jié)點(diǎn)類(lèi)型的概念。我相信大家會(huì)對(duì)下面的概念比較熟悉:

          • 主節(jié)點(diǎn)
          • 數(shù)據(jù)節(jié)點(diǎn)
          • 協(xié)調(diào)節(jié)點(diǎn)
          • Ingest 節(jié)點(diǎn)
          • 冷熱集群架構(gòu)

          ......

          Elasticsearch 7.9 版本引入了節(jié)點(diǎn)角色的概念。最近社群小伙伴關(guān)于節(jié)點(diǎn)角色提了不少問(wèn)題,列舉如下:

          • Q1:請(qǐng)問(wèn) Nginx + ES Coordinate + ES Master + ES Node 如何安裝配置呢?是否安裝一樣,只需更改節(jié)點(diǎn)角色即可?
          • Q2:ES部署上,node.role都是mdi和 node.role區(qū)分m、d、i ,在部署上各有什么優(yōu)勢(shì)?更推薦用哪種?
          • Q3:有 ES 7.x 的集群角色如圖,請(qǐng)問(wèn)在寫(xiě)入海量數(shù)據(jù)時(shí),應(yīng)該連接什么角色的節(jié)點(diǎn)寫(xiě)入?專(zhuān)用協(xié)調(diào)節(jié)點(diǎn)還是數(shù)據(jù)節(jié)點(diǎn)?
          • Q4:role的配置,加上這些data_hot, data_warm, data_cold 和自定義的attr屬性有區(qū)別嗎?
          • Q5:誰(shuí)能解釋一下es的角色 data data_content data_hot/warm/cold他們直接的關(guān)系?
          • Q6:請(qǐng)問(wèn) ES 7.10 的 data_content ?角色是個(gè)什么樣的存在?和協(xié)調(diào)節(jié)點(diǎn)什么區(qū)別?

          帶著這些問(wèn)題,我們開(kāi)始 Elasticsearch 節(jié)點(diǎn)角色的解讀。

          1、什么是 Elasticsearch 節(jié)點(diǎn)角色?

          Elasticsearch 7.9 之前的版本中的節(jié)點(diǎn)類(lèi)型:數(shù)據(jù)節(jié)點(diǎn)、協(xié)調(diào)節(jié)點(diǎn)、候選主節(jié)點(diǎn)、ingest 節(jié)點(diǎn),在 Elasticsearch 7.9 以及之后 版本中有了升級(jí),升級(jí)了什么呢?

          節(jié)點(diǎn)類(lèi)型升級(jí)為節(jié)點(diǎn)角色(Node roles)。節(jié)點(diǎn)角色分的很細(xì):數(shù)據(jù)節(jié)點(diǎn)角色、主節(jié)點(diǎn)角色、ingest節(jié)點(diǎn)角色、熱節(jié)點(diǎn)角色等。

          在 Elasticsearch 集群中,每個(gè)啟動(dòng)的 Elasticsearch 進(jìn)程都可以叫做一個(gè)節(jié)點(diǎn)。集群中只有一個(gè)節(jié)點(diǎn)的時(shí)候,以?Elasticsearch 8.1.3?版本單節(jié)點(diǎn)集群為例,如果我們不手動(dòng)設(shè)置節(jié)點(diǎn)角色,默認(rèn)節(jié)點(diǎn)角色如下“紅框”所示:

          GET?_cat/nodes?v

          #?返回結(jié)果
          ip??????????heap.percent?ram.percent?cpu?load_1m?load_5m?load_15m?node.role???master?name
          172.21.0.14???????????70??????????96???0????0.03????0.03?????0.05?cdfhilmrstw?*??????VM-0-14-centos

          當(dāng)集群中有多個(gè)節(jié)點(diǎn)角色的時(shí)候,就需要手動(dòng)設(shè)定、配置節(jié)點(diǎn)的角色。

          節(jié)點(diǎn)角色劃分的目的在于:不同角色的節(jié)點(diǎn)各司其職,共同確保集群的功能的穩(wěn)定和性能的高可用。

          如上截圖中的 “cdfhilmrstw”,我第一次看到這個(gè)串也是一臉懵逼,解釋一下,你就“豁然開(kāi)朗”。

          角色縮寫(xiě)英文釋義中文釋義
          ccold node冷數(shù)據(jù)節(jié)點(diǎn)
          ddata node數(shù)據(jù)節(jié)點(diǎn)
          ffrozen node冷凍數(shù)據(jù)節(jié)點(diǎn)
          hhot node熱數(shù)據(jù)節(jié)點(diǎn)
          iingest node數(shù)據(jù)預(yù)處理節(jié)點(diǎn)
          lmachine learning node機(jī)器學(xué)習(xí)節(jié)點(diǎn)
          mmaster-eligible node候選主節(jié)點(diǎn)
          rremote cluster client node遠(yuǎn)程節(jié)點(diǎn)
          scontent node內(nèi)容數(shù)據(jù)節(jié)點(diǎn)
          ttransform node轉(zhuǎn)換節(jié)點(diǎn)
          vvoting-only node僅投票節(jié)點(diǎn)
          wwarm node溫?cái)?shù)據(jù)節(jié)點(diǎn)
          coordinating node only僅協(xié)調(diào)節(jié)點(diǎn)

          2、為什么引入節(jié)點(diǎn)角色?節(jié)點(diǎn)類(lèi)型不香嗎?

          https://github.com/elastic/elasticsearch/pull/54998

          一個(gè)新功能的誕生必然是基于早期版本存在bug或者至少用戶(hù)體驗(yàn)差。

          節(jié)點(diǎn)角色就是基于節(jié)點(diǎn)類(lèi)型配置復(fù)雜和用戶(hù)體驗(yàn)差應(yīng)運(yùn)而生的。

          早期版本如果需要配置僅候選主節(jié)點(diǎn)類(lèi)型,需要的配置(極端情況)如下:

          node.data:?false
          node.ingest:?false
          node.remote_cluster_client:?false
          node.ml:?false
          node.master:?true
          node.transform:?false
          node.voting_only:?false

          這是非常繁瑣的配置,類(lèi)似我要說(shuō)我自己是主節(jié)點(diǎn),需要我先說(shuō)明我不是數(shù)據(jù)節(jié)點(diǎn)、不是 Ingest 預(yù)處理節(jié)點(diǎn)、不是機(jī)器學(xué)習(xí)節(jié)點(diǎn)、不是XXX各種節(jié)點(diǎn).....

          而節(jié)點(diǎn)角色的出現(xiàn)“革命性”的結(jié)局了這個(gè)問(wèn)題,如下所示,只需要說(shuō)明我是某某某,而不需要費(fèi)勁巴拉的解釋我不是某某某。

          node.roles:?[?data,?master?]

          3、不同角色節(jié)點(diǎn)的功能詳解

          3.1 主節(jié)點(diǎn)(Master-eligible node)

          • 主節(jié)點(diǎn)的核心用途:集群層面的管理,例如創(chuàng)建或刪除索引、跟蹤哪些節(jié)點(diǎn)是集群的一部分,以及決定將哪些分片分配給哪些節(jié)點(diǎn)。主節(jié)點(diǎn)的path.data 用于存儲(chǔ)集群元數(shù)據(jù)信息,不可缺少。

          • 主節(jié)點(diǎn)的重要性:擁有穩(wěn)定的主節(jié)點(diǎn)對(duì)于集群健康非常重要。

          和早期版本不同,節(jié)點(diǎn)角色劃分后,主節(jié)點(diǎn)又被細(xì)分為:候選主節(jié)點(diǎn)和僅投票主節(jié)點(diǎn)。

          • 主節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù):集群中每個(gè)索引的索引元數(shù)據(jù),集群層面的元數(shù)據(jù)。

          3.1.1 專(zhuān)用候選主節(jié)點(diǎn)(Dedicated master-eligible node)

          如果集群規(guī)模大、節(jié)點(diǎn)多之后,有必要獨(dú)立設(shè)置專(zhuān)用候選主節(jié)點(diǎn)。

          專(zhuān)用候選主節(jié)點(diǎn)配置:

          node.roles:?[?master?]

          3.1.2 僅投票主節(jié)點(diǎn)(Voting-only master-eligible node)

          用途:僅投票,不會(huì)被選為主節(jié)點(diǎn)。

          硬件配置可以較專(zhuān)用候選主節(jié)點(diǎn)低一些。

          僅投票主節(jié)點(diǎn)配置:

          node.roles:?[?master,?voting_only?]

          注意:master 必不可少。

          關(guān)于集群主節(jié)點(diǎn)配置,要強(qiáng)調(diào)說(shuō)明如下:

          • 高可用性 (HA) 集群需要至少三個(gè)符合主節(jié)點(diǎn)資格的節(jié)點(diǎn);其中至少兩個(gè)不是僅投票節(jié)點(diǎn)。
          • 即使其中一個(gè)節(jié)點(diǎn)發(fā)生故障,這樣的集群也將能夠選舉一個(gè)主節(jié)點(diǎn)。

          3.2 數(shù)據(jù)節(jié)點(diǎn)(Data node)

          數(shù)據(jù)節(jié)點(diǎn)用途:數(shù)據(jù)落地存儲(chǔ)、數(shù)據(jù)增、刪、改、查、搜索、聚合操作等處理操作。

          數(shù)據(jù)節(jié)點(diǎn)硬件配置:CPU 要求高、內(nèi)存要求高、磁盤(pán)要求高。

          專(zhuān)屬數(shù)據(jù)節(jié)點(diǎn)好處:主節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)分離,各司其職。

          數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)內(nèi)容:

          • 分片數(shù)據(jù)。
          • 每個(gè)分片對(duì)應(yīng)的元數(shù)據(jù)。
          • 集群層面的元數(shù)據(jù),如:setting 和 索引模板。

          擁有專(zhuān)用數(shù)據(jù)節(jié)點(diǎn)的主要好處是主角色和數(shù)據(jù)角色的分離。

          數(shù)據(jù)節(jié)點(diǎn)的配置:

          node.roles:?[?data?]

          在 Elastic 多層(tires)冷熱集群架構(gòu)體系下,數(shù)據(jù)節(jié)點(diǎn)又可以細(xì)分為:

          • 內(nèi)容數(shù)據(jù)節(jié)點(diǎn)(Content data node)
          • 熱數(shù)據(jù)節(jié)點(diǎn)(Hot data node)
          • 溫?cái)?shù)據(jù)節(jié)點(diǎn)(Warm data node)
          • 冷數(shù)據(jù)節(jié)點(diǎn)(Cold data node)
          • 冷凍數(shù)據(jù)節(jié)點(diǎn)(Frozen data node)

          圖片來(lái)自:Elastic 官方博客

          3.2.1 內(nèi)容數(shù)據(jù)節(jié)點(diǎn)

          用途:處理寫(xiě)入和查詢(xún)負(fù)載,具有較長(zhǎng)的數(shù)據(jù)保留要求。

          建議至少設(shè)置一個(gè)副本,以保證數(shù)據(jù)的高可用。

          不屬于數(shù)據(jù)流的系統(tǒng)索引或其他索引會(huì)自動(dòng)分配到內(nèi)容數(shù)據(jù)節(jié)點(diǎn)。

          node.roles:?[?data_content?]

          3.2.2 熱數(shù)據(jù)節(jié)點(diǎn)

          用途:保存最近、最常訪(fǎng)問(wèn)的時(shí)序數(shù)據(jù)。

          推薦使用:SSD 磁盤(pán),至少設(shè)置一個(gè)副本。

          node.roles:?[?data_hot?]

          3.2.3 溫?cái)?shù)據(jù)節(jié)點(diǎn)

          用途:保存訪(fǎng)問(wèn)頻次低且很少更新的時(shí)序數(shù)據(jù)。

          node.roles:?[?data_warm?]

          3.2.4 冷數(shù)據(jù)節(jié)點(diǎn)

          用途:保存不經(jīng)常訪(fǎng)問(wèn)且通常不更新的時(shí)序數(shù)據(jù)。可存儲(chǔ)可搜索快照。

          node.roles:?[?data_cold?]

          3.2.5 冷凍數(shù)據(jù)節(jié)點(diǎn)

          用途:保存很少訪(fǎng)問(wèn)且從不更新的時(shí)序數(shù)據(jù)。

          node.roles:?[?data_frozen?]

          在冷熱集群架構(gòu)時(shí)序數(shù)據(jù) ILM 索引生命周期管理的實(shí)戰(zhàn)演練環(huán)節(jié),驗(yàn)證發(fā)現(xiàn):

          在配置節(jié)點(diǎn)角色時(shí),data_hot、data_warm、data_cold ?要和 data_content 要一起配置。且 data_hot、data_warm、data_cold 不要和原有的data 節(jié)點(diǎn)一起配置了。

          如果僅data_hot 不設(shè)置 data_content 會(huì)導(dǎo)致集群數(shù)據(jù)寫(xiě)入后無(wú)法落地。

          我的理解:data_hot, data_warm, data_cold 是標(biāo)識(shí)性的節(jié)點(diǎn),實(shí)際落地存儲(chǔ)還得靠 data_content 角色。

          3.3 數(shù)據(jù)預(yù)處理節(jié)點(diǎn)(ingest node)

          用途:執(zhí)行由預(yù)處理管道組成的預(yù)處理任務(wù)。

          關(guān)于啥是數(shù)據(jù)的預(yù)處理?之前有多篇文章解讀過(guò):

          Elasticsearch 預(yù)處理沒(méi)有奇技淫巧,請(qǐng)先用好這一招!

          Elasticsearch的ETL利器——Ingest節(jié)點(diǎn)

          node.roles:?[?ingest?]

          3.4 僅協(xié)調(diào)節(jié)點(diǎn)(Coordinating only node)

          用途:類(lèi)似智能負(fù)載均衡器,負(fù)責(zé):路由分發(fā)請(qǐng)求、聚集搜索或聚合結(jié)果。

          注意事項(xiàng):在一個(gè)集群中添加太多的僅協(xié)調(diào)節(jié)點(diǎn)會(huì)增加整個(gè)集群的負(fù)擔(dān),因?yàn)楫?dāng)選的主節(jié)點(diǎn)必須等待來(lái)自每個(gè)節(jié)點(diǎn)的集群狀態(tài)更新的確認(rèn)。

          node.roles:?[?]

          空即是“色”,不對(duì),這里空即是“僅協(xié)調(diào)節(jié)點(diǎn)”。

          3.5 遠(yuǎn)程節(jié)點(diǎn)(Remote-eligible node)

          用途:跨集群檢索或跨集群復(fù)制。

          node.roles:?[?remote_cluster_client?]

          3.6 機(jī)器學(xué)習(xí)節(jié)點(diǎn)(Machine learning node)

          用途:機(jī)器學(xué)習(xí),系收費(fèi)功能。

          node.roles:?[?ml,?remote_cluster_client]

          3.7 轉(zhuǎn)換節(jié)點(diǎn)(Transform node)

          用途:運(yùn)行轉(zhuǎn)換并處理轉(zhuǎn)換 API 請(qǐng)求。這塊,咱們之前文章沒(méi)有涉及。

          推薦閱讀:

          https://www.elastic.co/guide/en/elasticsearch/reference/current/transform-overview.html

          node.roles:?[?transform,?remote_cluster_client?]

          4、回答開(kāi)篇問(wèn)題

          4.1 Q1:請(qǐng)問(wèn) Nginx + ES Coordinate + ES Master + ES Node 如何安裝配置呢?是否安裝一樣,只需更改節(jié)點(diǎn)角色即可?

          答案:先劃分節(jié)點(diǎn)角色。節(jié)點(diǎn)不多的話(huà)手動(dòng)one by one 部署(部署好了一個(gè),其他的拷貝后修改角色、ip等就可以),節(jié)點(diǎn)非常多的話(huà)可以借助:ansible 等腳本工具快速部署。

          4.2 Q2:ES部署上,node.role都是mdi和 node.role區(qū)分m、d、i ,在部署上各有什么優(yōu)勢(shì)?更推薦用哪種?

          答案:本文已介紹。m 代表主節(jié)點(diǎn) master, d 代表數(shù)據(jù)節(jié)點(diǎn) data, i 代表數(shù)據(jù)預(yù)處理節(jié)點(diǎn) ingest。

          4.3 Q3:有 ES 7.x 的集群角色如圖,請(qǐng)問(wèn)在寫(xiě)入海量數(shù)據(jù)時(shí),應(yīng)該連接什么角色的節(jié)點(diǎn)寫(xiě)入?專(zhuān)用協(xié)調(diào)節(jié)點(diǎn)還是數(shù)據(jù)節(jié)點(diǎn)?

          答案:看節(jié)點(diǎn)規(guī)模和節(jié)點(diǎn)角色劃分,如果已經(jīng)有了獨(dú)立協(xié)調(diào)節(jié)點(diǎn),連接獨(dú)立協(xié)調(diào)節(jié)點(diǎn)。如果沒(méi)有,連接硬件配置高的節(jié)點(diǎn)。

          4.4 Q4:role的配置,加上這些data_hot, data_warm, data_cold 和自定義的attr屬性有區(qū)別嗎?

          答案:新版本新特性,有區(qū)別,新的方式配置更為簡(jiǎn)潔,可讀性強(qiáng)、用戶(hù)體驗(yàn)優(yōu)。

          4.5 Q5:誰(shuí)能解釋一下es的角色 data data_content data_hot/warm/cold他們直接的關(guān)系?

          答案:系冷熱集群架構(gòu)的數(shù)據(jù)節(jié)點(diǎn)的分層處理機(jī)制。相當(dāng)于早期版本冷熱集群架構(gòu)的手動(dòng)配置節(jié)點(diǎn)屬性的部分,高版本做了精細(xì)切分,使得數(shù)據(jù)冷熱集群管理更為高效。尤其默認(rèn)遷移(migrate )自動(dòng)實(shí)現(xiàn)機(jī)制,之前版本的分片分配策略手動(dòng)配置變得不再必須:

          "allocate"?:?{
          ????????????"include"?:?{
          ??????????????"box_type":?"hot,warm"
          ????????????}
          ??????????}

          4.6 Q6:請(qǐng)問(wèn) ES 7.10 的 data_content ?角色是個(gè)什么樣的存在?和協(xié)調(diào)節(jié)點(diǎn)什么區(qū)別?

          答案:兩種完全不同的節(jié)點(diǎn)。data_content 屬于數(shù)據(jù)節(jié)點(diǎn),永久存儲(chǔ)數(shù)據(jù)的地方。而協(xié)調(diào)節(jié)點(diǎn)是用來(lái)請(qǐng)求路由分發(fā)、結(jié)果匯聚處理的。

          5、小結(jié)

          有了節(jié)點(diǎn)角色劃分之后,老版本的節(jié)點(diǎn)類(lèi)型配置還是支持的。最早使用節(jié)點(diǎn)角色做 ILM 索引生命周期管理還有點(diǎn)不適應(yīng),摸索了一小段時(shí)間。

          但,我們得擁抱 Elasticsearch 的變化

          節(jié)點(diǎn)角色的劃分是用戶(hù)體驗(yàn)層面、功能層面的改進(jìn),有了它,我們節(jié)點(diǎn)劃分會(huì)更加明晰,節(jié)點(diǎn)用途會(huì)更加聚焦、具體。

          關(guān)于節(jié)點(diǎn)角色和硬件配置的關(guān)系,也是經(jīng)常被提問(wèn)的問(wèn)題,推薦配置參考:

          角色描述存儲(chǔ)內(nèi)存計(jì)算網(wǎng)絡(luò)
          數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)和檢索數(shù)據(jù)極高
          主節(jié)點(diǎn)管理集群狀態(tài)
          Ingest 節(jié)點(diǎn)轉(zhuǎn)換輸入數(shù)據(jù)
          機(jī)器學(xué)習(xí)節(jié)點(diǎn)機(jī)器學(xué)習(xí)極高極高
          協(xié)調(diào)節(jié)點(diǎn)請(qǐng)求轉(zhuǎn)發(fā)和合并檢索結(jié)果

          你的生產(chǎn)環(huán)境使用了什么版本的集群?如何做的節(jié)點(diǎn)角色的劃分?歡迎留言討論。

          參考

          推薦


          1、重磅 | 死磕 Elasticsearch 方法論認(rèn)知清單(2021年國(guó)慶更新版)
          2、如何從0到1打磨一門(mén) Elasticsearch 線(xiàn)上直播課?(口碑不錯(cuò))
          3、如何系統(tǒng)的學(xué)習(xí) Elasticsearch ?
          4、干貨 | Elasticsearch 索引生命周期管理 ILM 實(shí)戰(zhàn)指南

          短時(shí)間快習(xí)得多干貨!

          和全球?1600+?Elastic 愛(ài)好者一起精進(jìn)!


          比同事搶先一步學(xué)習(xí)進(jìn)階干貨
          瀏覽 92
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黑人借宿与人妻羽月希 | 三级片在线观看中文字幕 | 摸人妻精品导航 | 被操视频在线观看 | 欧美在线免费观看 |