有多少網(wǎng)站是做廢舊信息的edm營(yíng)銷
簡(jiǎn)介
-
索引模板可以幫助簡(jiǎn)化創(chuàng)建和二次配置索引的過程,讓我們更高效地管理索引的配置和映射。
-
索引生命周期策略是一項(xiàng)有意義的功能。它通常用于管理索引和分片的熱(hot)、溫(warm)和冷(cold)數(shù)據(jù),以及定期刪除過期的數(shù)據(jù),以確保Elasticsearch的健康運(yùn)行。
-
Elasticsearch集群中,不同節(jié)點(diǎn)扮演著不同的角色(熱(hot)、溫(warm)和冷(cold)主節(jié)點(diǎn)),共同構(gòu)成了強(qiáng)大的搜索和分析引擎。
ELK系列文章: ELK
此文檔基于 8.0版本編寫。
索引模板 - Template
索引可使用預(yù)定義的模板進(jìn)行創(chuàng)建,這個(gè)模板稱作Index templates。模板設(shè)置包括設(shè)置和映射,通過模式匹配的方式使得多個(gè)索引重用一個(gè)模板。
索引模式
用于匹配創(chuàng)建的索引。
索引設(shè)置
settings主要作用于index的一些相關(guān)配置信息,如分片數(shù)、副本數(shù),tranlog同步條件、refresh等。
官方文檔
下面就是把副本數(shù)量指定為2,默認(rèn)副本數(shù)量為1。
{"index": {"number_of_replicas": "2"}
}
-
index.codec 默認(rèn)使用 LZ4 壓縮存儲(chǔ)的數(shù) 壓縮,但可以將其設(shè)置為使用 DEFLATE 進(jìn)行更高的壓縮比,以較慢的存儲(chǔ)字段性能為代價(jià)。
-
index.number_of_replicas 每個(gè)主分片的副本數(shù)。默認(rèn)值為 1。
-
index.number_of_shards 索引應(yīng)具有的主分片數(shù)。默認(rèn)值為1 。此設(shè)置只能在創(chuàng)建索引時(shí)設(shè)置。不能在索引上的更改它。
索引映射
mappings主要是一些說明信息,大致又分為_all、_source、prpperties這三部分:
-
_all:主要指的是AllField字段,我們可以將一個(gè)或多個(gè)都包含進(jìn)來,在進(jìn)行檢索時(shí)無需指定字段的情況下檢索多個(gè)字段。設(shè)置
-
_source:主要指的是SourceField字段,Source可以理解為ES除了將數(shù)據(jù)保存在索引文件中,另外還有一份源數(shù)據(jù)。_source字段在我們進(jìn)行檢索時(shí)相當(dāng)重要,如果在{“enabled” : false}情況下默認(rèn)檢索只會(huì)返回ID, 你需要通過Fields字段去到索引中去取數(shù)據(jù),效率不是很高。但是enabled設(shè)置為true時(shí),索引會(huì)比較大,這時(shí)可以通過Compress進(jìn)行壓縮和inclueds、excludes來在字段級(jí)別上進(jìn)行一些限制,自定義哪些字段允許存儲(chǔ)。
-
properties:這是最重要的步驟,主要針對(duì)索引結(jié)構(gòu)和字段級(jí)別上的一些設(shè)置?!癬all” : {“enabled” : true}
咱們通常在elasticsearch中 post mapping信息,每重新創(chuàng)建索引便到設(shè)置mapping,分片,副本信息。非常繁瑣。強(qiáng)烈建議大家通過設(shè)置模板方式設(shè)置索引信息。設(shè)置索引名,通過正則匹配的方式匹配到相應(yīng)的模板。
直接修改mapping的優(yōu)先級(jí)>索引模板。索引匹配了多個(gè)模板,當(dāng)屬性等配置出現(xiàn)不一致的,以order的最大值為準(zhǔn),order默認(rèn)值為0
創(chuàng)建過程 - Kibana
選擇 Stack Management > 數(shù)據(jù) > 索引管理 > 索引模板 > 創(chuàng)建模板
配置名稱和索引模式
填寫名稱、和索引模式和開啟允許自動(dòng)創(chuàng)建索引。點(diǎn)擊下一步,跳過組件模板。
注意索引模式需要匹配要?jiǎng)?chuàng)建的索引名稱。
索引設(shè)置
配置副本數(shù)量為2,點(diǎn)擊下一步到復(fù)查模板。最后點(diǎn)擊創(chuàng)建模板。
最終索引模式匹配的創(chuàng)建模板,都會(huì)套用模板配置。
索引生命周期
索引生命周期可以手動(dòng)關(guān)聯(lián)模板,也可以通過索引模板自動(dòng)關(guān)聯(lián)。
創(chuàng)建
選擇 Stack Management > 數(shù)據(jù) > 索引管理 > 索引生命周期策略 > 點(diǎn)擊創(chuàng)建策略。
創(chuàng)建策略,配置熱階段 180天后轉(zhuǎn)換為冷階段,并把副本數(shù)量改為0。再過365天后刪除。
冷階段配置
配置副本分片重定為0,并配置此階段后刪除。
刪除階段
配置冷階段365天后刪除索引。
關(guān)聯(lián)索引模板
集群角色
node.roles: [ data, master ]
# 配置文件示例
主節(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ù)。
專用候選主節(jié)點(diǎn)(Dedicated master-eligible node)
如果集群規(guī)模大、節(jié)點(diǎn)多之后,有必要獨(dú)立設(shè)置專用候選主節(jié)點(diǎn)。
專用候選主節(jié)點(diǎn)配置:
node.roles: [ master ]
僅投票主節(jié)點(diǎn)(Voting-only master-eligible node)
用途:僅投票,不會(huì)被選為主節(jié)點(diǎn)。
硬件配置可以較專用候選主節(jié)點(diǎn)低一些。
僅投票主節(jié)點(diǎn)配置:
node.roles: [ master, voting_only ]
注意:master 在集群中必不可少。
關(guān)于集群主節(jié)點(diǎn)配置,要強(qiáng)調(diào)說明如下:
-
高可用性 (HA) 集群需要至少三個(gè)符合主節(jié)點(diǎn)資格的節(jié)點(diǎn);其中至少兩個(gè)不是僅投票節(jié)點(diǎn)。
-
即使其中一個(gè)節(jié)點(diǎn)發(fā)生故障,這樣的集群也將能夠選舉一個(gè)主節(jié)點(diǎn)。
數(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)存要求高、磁盤要求高。
專屬數(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 和 索引模板。
擁有專用數(shù)據(jù)節(jié)點(diǎn)的主要好處是主角色和數(shù)據(jù)角色的分離。
數(shù)據(jù)節(jié)點(diǎn)的配置:
node.roles: [ data ]
用途:運(yùn)行轉(zhuǎn)換并處理轉(zhuǎn)換 API 請(qǐng)求。這塊,咱們之前文章沒有涉及。
在 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)
內(nèi)容數(shù)據(jù)節(jié)點(diǎ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 ]
熱數(shù)據(jù)節(jié)點(diǎn)
用途:保存最近、最常訪問的時(shí)序數(shù)據(jù)。
推薦使用:SSD 磁盤,至少設(shè)置一個(gè)副本。
node.roles: [ data_hot ]
****
溫?cái)?shù)據(jù)節(jié)點(diǎn)
用途:保存訪問頻次低且很少更新的時(shí)序數(shù)據(jù)。
node.roles: [ data_warm ]
冷數(shù)據(jù)節(jié)點(diǎn)
用途:保存不經(jīng)常訪問且通常不更新的時(shí)序數(shù)據(jù)??纱鎯?chǔ)可搜索快照。
node.roles: [ data_cold ]
冷凍數(shù)據(jù)節(jié)點(diǎ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ù)寫入后無法落地。
我的理解:data_hot, data_warm, data_cold 是標(biāo)識(shí)性的節(jié)點(diǎn),實(shí)際落地存儲(chǔ)還得靠 data_content 角色。
數(shù)據(jù)預(yù)處理節(jié)點(diǎn)(ingest node)
用途:執(zhí)行由預(yù)處理管道組成的預(yù)處理任務(wù)。
關(guān)于啥是數(shù)據(jù)的預(yù)處理?之前有多篇文章解讀過:
Elasticsearch 預(yù)處理沒有奇技淫巧,請(qǐng)先用好這一招!
Elasticsearch的ETL利器——Ingest節(jié)點(diǎn)
node.roles: [ ingest ]
僅協(xié)調(diào)節(jié)點(diǎn)(Coordinating only node)
用途:類似智能負(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)必須等待來自每個(gè)節(jié)點(diǎn)的集群狀態(tài)更新的確認(rèn)。
node.roles: [ ]# 空配置
空即是“色”,不對(duì),這里空即是“僅協(xié)調(diào)節(jié)點(diǎn)”。
遠(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)求。這塊,咱們之前文章沒有涉及。
推薦閱讀:
https://www.elastic.co/guide/en/elasticsearch/reference/current/transform-overview.html
node.roles: [ transform, remote_cluster_client ]
角色資源耗費(fèi)
參考
https://chenzhonzhou.github.io/2021/01/31/elasticsearch-suo-yin-mo-ban-template/
https://cloud.tencent.com/developer/article/2009025