国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch 懸掛索引分析和自己的一點見解

這篇具有很好參考價值的文章主要介紹了Elasticsearch 懸掛索引分析和自己的一點見解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在 Elasticsearch 的實戰(zhàn)中,懸掛索引是一個既常見又容易引起困擾的概念。

今天,我將分享一次處理集群狀態(tài)為RED,原因為DANGLING_INDEX_IMPORTED?的實戰(zhàn)經(jīng)驗,深入探討懸掛索引的定義、產(chǎn)生原因、管理方法,以及如何有效處理它們,確保讀者能夠明白并解決自己面臨的問題。

值得一提的是,類似問題恰巧是某企業(yè)的面試題。

Elasticsearch 懸掛索引分析和自己的一點見解,jenkins,運維

1、懸掛索引的定義

當(dāng) Elasticsearch 集群的某個節(jié)點因故障(如宕機)暫時離開集群,而該節(jié)點上存有的某些索引分片在集群的其他節(jié)點上沒有副本時,這些索引分片在節(jié)點重新加入集群后會被標(biāo)記為“懸掛”狀態(tài)。

簡而言之,懸掛索引(dangling index)是存在于節(jié)點上、但未被集群元數(shù)據(jù)所識別的索引分片,這意味著它們不會參與到集群的正常索引操作中。

讓我們不僅聯(lián)想到十多年前學(xué)過的一個C語言的知識點:野指針

野指針(Dangling Pointer)是指向“不可預(yù)知”內(nèi)存區(qū)域的指針。具體來說,當(dāng)指針變量在釋放了其所指向的內(nèi)存后未被設(shè)為 NULL,或者是指向了一個已經(jīng)被回收利用的內(nèi)存塊時,這個指針就變成了野指針。

Elasticsearch 懸掛索引分析和自己的一點見解,jenkins,運維

使用野指針訪問或操作內(nèi)存是危險的,因為它可能會導(dǎo)致不可預(yù)知的行為或程序崩潰,類似于懸掛索引在集群中的狀態(tài),指向了集群中不存在的元數(shù)據(jù)。

2、遇到的問題及解決步驟

之前遇到過 Elasticsearch 集群狀態(tài)為RED,原因是出現(xiàn)了大量UNASSIGNED的分片,具體來說是DANGLING_INDEX_IMPORTED的情況。

2.1 識別問題

首先,我使用如下命令確認(rèn)集群節(jié)點狀態(tài),發(fā)現(xiàn)確實有一個數(shù)據(jù)節(jié)點丟失。通過重啟故障節(jié)點,虛擬機恢復(fù),但分片仍然未分配。

GET?/_cat/nodes

2.2 深入分析

進(jìn)一步使用如下命令查看未分配的分片,發(fā)現(xiàn)都標(biāo)記為了 DANGLING_INDEX_IMPORTED。

GET?/_cat/shards?h=index,shard,prirep,state,unassigned.reason

返回結(jié)果:

index1????????????0?p?UNASSIGNED???DANGLING_INDEX_IMPORTED
index2????????????0?p?UNASSIGNED???DANGLING_INDEX_IMPORTED
index3????????????0?p?UNASSIGNED???DANGLING_INDEX_IMPORTED

上面提到的 DANGLING_INDEX_IMPORTED 就是前文提及的懸垂索引導(dǎo)入標(biāo)記。

DANGLING_INDEX_IMPORTED 標(biāo)記表示集群已經(jīng)嘗試恢復(fù)這些原本丟失的索引分片,將它們重新集成回集群中。這是一種Elasticsearch集群自我恢復(fù)的機制,用于盡可能保留和恢復(fù)數(shù)據(jù)。

然而,這種自動導(dǎo)入懸掛索引的操作可能會帶來數(shù)據(jù)完整性和一致性的風(fēng)險,因為無法保證這些索引的數(shù)據(jù)是最新的或完整的。

因此,在Elasticsearch的較新版本(7.9之后版本,不含7.9)中,建議使用專門的懸掛索引API來手動管理和恢復(fù)這些索引,以確保數(shù)據(jù)的安全性和一致性。

2.3 診斷原因

通過如下命令診斷未分配分片的具體原因,發(fā)現(xiàn)是因為之前的主分片副本已經(jīng)在集群中的其他節(jié)點上找不到了。

GET?/_cluster/allocation/explain?pretty

返回信息類似如下:

{
??"index"?:?"XXXX",
??"shard"?:?0,
??"primary"?:?true,
??"current_state"?:?"unassigned",
??"unassigned_info"?:?{
????"reason"?:?"DANGLING_INDEX_IMPORTED",
????"at"?:?"2021-05-03T11:58:14.859Z",
????"last_allocation_status"?:?"no_valid_shard_copy"
??},
??"can_allocate"?:?"no_valid_shard_copy",
??"allocate_explanation"?:?"cannot?allocate?because?a?previous?copy?of?the?primary?shard?existed?but?can?no?longer?be?found?on?the?nodes?in?the?cluster",

這段信息表明:

XXXX索引的第0個主分片因為被識別為懸掛索引并嘗試導(dǎo)入而未被分配。盡管有導(dǎo)入嘗試,但因為在集群的任何節(jié)點上都找不到這個分片的有效副本,導(dǎo)致這個分片無法被正確分配到任何節(jié)點上。

這可能指向了數(shù)據(jù)丟失或數(shù)據(jù)一致性問題,需要進(jìn)一步的手動干預(yù)和數(shù)據(jù)恢復(fù)操作。

3、懸掛索引重要的操作和注意事項

3.1. 識別懸掛索引

使用如下命令,可以列出所有的懸掛索引。

GET?/_dangling

此命令將返回索引名稱、索引UUID、創(chuàng)建時間以及所在節(jié)點等信息,如下所示:

{
??"dangling_indices":?[
???{
????"index_name":?"my-index-000001",
????"index_uuid":?"zmM4e0JtBkeUjiHD-MihPQ",
????"creation_date_millis":?1589414451372,
????"node_ids":?[
??????"pL47UN3dAb2d5RCWP6lQ3e"
????]
???}
??]
}

3.2 恢復(fù)懸掛索引

通過如下命令恢復(fù)指定的懸掛索引。

這一步驟要求明確接受可能的數(shù)據(jù)丟失,因為 Elasticsearch 無法確定懸掛索引的數(shù)據(jù)是否是最新的。

POST?/_dangling/<index-uuid>?accept_data_loss=true

這里 index-uuid 就是 3.1 小節(jié)返回的 index_uuid。

3.3 刪除懸掛索引

使用如下API可以通過指定其UUID來刪除一個懸掛索引,而UUID可以通過使用列出懸掛索引的API找到。

DELETE?/_dangling/<index-uuid>?accept_data_loss=true

這個操作需要在Elasticsearch安全特性啟用的情況下?lián)碛泄芾砑旱臋?quán)限。

簡而言之,這個API提供了一種方法,允許管理員在確認(rèn)數(shù)據(jù)丟失的風(fēng)險后,清理集群中未被識別為當(dāng)前部分的懸掛索引。

3.4 ?自動化腳本恢復(fù)

如果存在大量懸掛索引,可以編寫腳本自動化處理恢復(fù)操作。

3.5 檢查集群狀態(tài)

完成恢復(fù)操作后,需檢查集群狀態(tài)以確保數(shù)據(jù)的完整性和集群的健康。

4、避免懸掛索引的預(yù)防措施

  • 確保所有節(jié)點正確配置并加入集群。

  • 在節(jié)點離開集群前,正確移除所有索引。

  • 避免手動修改 Elasticsearch 數(shù)據(jù)路徑,以防產(chǎn)生懸掛索引。

  • 刪除大量索引時需確保所有集群節(jié)點均在線,以避免產(chǎn)生懸掛索引。

5、結(jié)語

通過對Elasticsearch中懸掛索引問題的深入探討與解決,我們不僅增強了對集群管理的理解,也學(xué)會了如何應(yīng)對潛在的數(shù)據(jù)一致性風(fēng)險。

本次實戰(zhàn)經(jīng)歷強調(diào)了預(yù)防、診斷和恢復(fù)懸掛索引的重要策略,提醒我們在集群運維過程中必須保持警惕,采取適當(dāng)措施以維護集群的健康狀態(tài)。

Elasticsearch 懸掛索引分析和自己的一點見解,jenkins,運維

正確的集群管理實踐和對懸掛索引的有效處理,是確保Elasticsearch集群穩(wěn)定運行、數(shù)據(jù)安全的關(guān)鍵。

希望本指南能幫助讀者在未來遇到類似問題時,能夠更加從容不迫地應(yīng)對,保障數(shù)據(jù)的完整性和可用性。文章來源地址http://www.zghlxwxcb.cn/news/detail-850128.html

到了這里,關(guān)于Elasticsearch 懸掛索引分析和自己的一點見解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 關(guān)于golang鎖的一點東西

    關(guān)于golang鎖的一點東西

    本文基于go 1.19.3 最近打算再稍微深入地看下golang的源碼,先從簡單的部分入手。正巧前段時間讀了操作系統(tǒng)同步機制的一點東西,那么golang這里就從鎖開始好了。 在這部分內(nèi)容中,可能不會涉及到太多的細(xì)節(jié)的講解。更多的內(nèi)容會聚焦在我感興趣的一些點,以及整體的設(shè)計

    2024年02月14日
    瀏覽(23)
  • 找實習(xí)、工作的一點淺見

    一、實習(xí)的必要性。 為什么需要去實習(xí)?1、實習(xí)能幫助自己增進(jìn)對于具體職場的認(rèn)識,包括具體工作的職責(zé)、內(nèi)容、工作氛圍、是否有較大壓力等等;2、通過一段時間的實習(xí)經(jīng)歷,能幫助自己作出未來是否能勝任類似的工作的判斷,如果有留用,是否考慮留下,如果沒有留

    2024年02月10日
    瀏覽(20)
  • 賬號登錄相關(guān)的一點隨筆

    最后更新于2023年8月8日 14:25:32 簡單:一個token驗證; 前端發(fā)來登錄信息,后端驗證通過后,將token發(fā)回前端; 復(fù)雜:Access Token + Refresh Token驗證: 將Access Token和Refresh Token都發(fā)回前端,AT過期時間短,RT時間長。AT過期后,使用RT刷新AT,再用新的AT登錄。 token這東西可以放在ht

    2024年02月13日
    瀏覽(22)
  • 給想考CISP的一點建議

    了解CISP考試: 在報名參加考試之前,要充分了解CISP認(rèn)證考試的考試內(nèi)容、考試形式、考試難度等相關(guān)信息,這有助于你制定更有效的備考計劃。 制定備考計劃: 根據(jù)自己的實際情況和考試要求,制定一份詳細(xì)的備考計劃,包括學(xué)習(xí)時間、學(xué)習(xí)內(nèi)容、練習(xí)測試等。在備考期

    2024年02月01日
    瀏覽(25)
  • [RPC]關(guān)于RPC的一點理解

    以下內(nèi)容僅為個人理解,不作正確性保證,感謝批評指正 在分布式計算中,遠(yuǎn)程過程調(diào)用 (RPC) 是指計算機程序?qū)е逻^程(子例程)在不同的地址空間(通常在共享網(wǎng)絡(luò)上的另一臺計算機上)中執(zhí)行, 它的編碼就好像是普通(本地)過程調(diào)用一樣,程序員沒有 顯式 編碼遠(yuǎn)程

    2024年02月10日
    瀏覽(34)
  • 對單片機的一點理解

    前言 大一時學(xué)過一段時間的51單片機,后面就一直研究STM32和算法,最近工作搞51單片機有半年了,有一些自己的想法,跟公司的工程師也探討了一些,結(jié)合聊天記錄,寫了這篇博客,希望對讀者有幫助。 有紕漏請指出,轉(zhuǎn)載請說明。 學(xué)習(xí)交流請發(fā)郵件 1280253714@qq.com 對單片機

    2024年04月14日
    瀏覽(21)
  • 對卷積的一點具象化理解

    對卷積的一點具象化理解

    ????????卷積的公式一般被表示為下式: ????????對新手來說完全看不懂這是干什么,這個問題需要結(jié)合卷積的應(yīng)用場景來說。 ????????卷積比較廣泛的應(yīng)用是在信號與系統(tǒng)中,所以有些 公式的定義會按照信息流的習(xí)慣 。假設(shè)存在一串信號 g(x) 經(jīng)過一個響應(yīng) h(x)

    2024年02月09日
    瀏覽(24)
  • 對KMP算法的一點碎碎念——上篇

    對KMP算法的一點碎碎念——上篇

    假設(shè)有模式串T為: a b a b a c ,求解與其對應(yīng)的next數(shù)組為多少 1.1 前置知識-最長公共前后綴LCP 1.1.1 前綴與后綴 前綴的概念:前綴是 不包含最后一個字符 的所有 以第一個字符開頭 的任意子串 后綴的概念:后綴是 不包含第一個字符 的所有 以最后一個字符結(jié)尾 的任意子串 例

    2024年02月07日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包