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

Flink的checkpoint是怎么實(shí)現(xiàn)的?

這篇具有很好參考價(jià)值的文章主要介紹了Flink的checkpoint是怎么實(shí)現(xiàn)的?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

分析&回答

Checkpoint介紹

Checkpoint容錯(cuò)機(jī)制是Flink可靠性的基石,可以保證Flink集群在某個(gè)算子因?yàn)槟承┰?如 異常退出)出現(xiàn)故障時(shí),能夠?qū)⒄麄€(gè)應(yīng)用流圖的狀態(tài)恢復(fù)到故障之前的某一狀態(tài),保證應(yīng)用流圖狀態(tài)的一致性。Flink的Checkpoint機(jī)制原理來自“Chandy-Lamport algorithm”算法。

Barriers

flink 分布式快照的核心元素是 stream barriers,這些barriers被注入到流中,并作為流的一部分,隨著流流動(dòng)。barriers將數(shù)據(jù)流的記錄分為進(jìn)入當(dāng)前快照的記錄和進(jìn)入下一個(gè)快照的記錄,每個(gè)barriers都攜帶了快照的ID,快照的數(shù)據(jù)在barriers的前面推送。barriers非常輕量級(jí),不會(huì)中斷流的流動(dòng)。同一時(shí)間,會(huì)有多個(gè)checkpoint在并發(fā)進(jìn)行。

Flink的checkpoint是怎么實(shí)現(xiàn)的?,大數(shù)據(jù),flink,java,大數(shù)據(jù)

barrier被注入到并行流的數(shù)據(jù)源,注入快照n (稱為Sn)的barriers 是數(shù)據(jù)源中個(gè)一個(gè)位置,在kafka 就是某個(gè)分區(qū)的最后一條記錄的offset。這個(gè)位置Sn后續(xù)會(huì)匯報(bào)給JM的checkpoint coordinator(協(xié)調(diào)checkpoint功能)。 barrier隨著流向下游流動(dòng),當(dāng)中間的operator從他所有的輸入流中收到checkpoint n 的barrier時(shí),該operator會(huì)將barrier發(fā)送給他的下游operator。一旦到達(dá)DAG的末端,sink會(huì)將這條流的state handle匯報(bào)JM的checkpoint coordinator,當(dāng)sink從他所有的輸入流中接收到了checkpoint n barrier ,Jm 會(huì)返回一個(gè)completed checkpoint meta, 然后checkpoint 標(biāo)記為完成,狀態(tài)存儲(chǔ)到相應(yīng)的state backend中。

barrier 對(duì)齊

Flink的checkpoint是怎么實(shí)現(xiàn)的?,大數(shù)據(jù),flink,java,大數(shù)據(jù)

當(dāng)一個(gè)opeator有多個(gè)輸入流的時(shí)候,checkpoint barrier n 會(huì)進(jìn)行對(duì)齊,就是已到達(dá)的會(huì)先緩存到buffer里等待其他未到達(dá)的,一旦所有流都到達(dá),則會(huì)向下游廣播,exactly-once 就是利用這一特性實(shí)現(xiàn)的,at least once 因?yàn)椴粫?huì)進(jìn)行對(duì)齊,就會(huì)導(dǎo)致有的數(shù)據(jù)被重復(fù)處理。

checkpoint 數(shù)據(jù)結(jié)構(gòu)

當(dāng)一個(gè)operator接收到所有上游發(fā)送的 checkpoint n barrier 向下游發(fā)送之前,會(huì)對(duì)狀態(tài)進(jìn)行一次快照,將offset state 等值保存起來,默認(rèn)情況下是保存在Jm的內(nèi)存中,由于可能會(huì)比較大,可以存在狀態(tài)后端中,生成中建議放hdfs.

Flink的checkpoint是怎么實(shí)現(xiàn)的?,大數(shù)據(jù),flink,java,大數(shù)據(jù)

到最終checkpoint 快照的完整數(shù)據(jù)結(jié)構(gòu)類似與一個(gè)表格,每個(gè)opeator經(jīng)過處理后填寫屬于自己的那部分,最后會(huì)將其存到state backend中供failover時(shí)使用。

反思&擴(kuò)展

Flink 的容錯(cuò)機(jī)制(checkpoint) 內(nèi)部實(shí)現(xiàn)

每個(gè)需要Checkpoint的應(yīng)用在啟動(dòng)時(shí),Flink的JobManager為其創(chuàng)建一個(gè) CheckpointCoordinator(檢查點(diǎn)協(xié)調(diào)器),CheckpointCoordinator全權(quán)負(fù)責(zé)本應(yīng)用的快照制作。

CheckpointCoordinator(檢查點(diǎn)協(xié)調(diào)器),CheckpointCoordinator全權(quán)負(fù)責(zé)本應(yīng)用的快照制作。

Flink的checkpoint是怎么實(shí)現(xiàn)的?,大數(shù)據(jù),flink,java,大數(shù)據(jù)

CheckpointCoordinator(檢查點(diǎn)協(xié)調(diào)器) 周期性的向該流應(yīng)用的所有source算子發(fā)送 barrier(屏障)。

當(dāng)某個(gè)source算子收到一個(gè)barrier時(shí),便暫停數(shù)據(jù)處理過程,然后將自己的當(dāng)前狀態(tài)制作成快照,并保存到指定的持久化存儲(chǔ)中,最后向CheckpointCoordinator報(bào)告自己快照制作情況,同時(shí)向自身所有下游算子廣播該barrier,恢復(fù)數(shù)據(jù)處理

下游算子收到barrier之后,會(huì)暫停自己的數(shù)據(jù)處理過程,然后將自身的相關(guān)狀態(tài)制作成快照,并保存到指定的持久化存儲(chǔ)中,最后向CheckpointCoordinator報(bào)告自身快照情況,同時(shí)向自身所有下游算子廣播該barrier,恢復(fù)數(shù)據(jù)處理。

每個(gè)算子按照步驟3不斷制作快照并向下游廣播,直到最后barrier傳遞到sink算子,快照制作完成。

當(dāng)CheckpointCoordinator收到所有算子的報(bào)告之后,認(rèn)為該周期的快照制作成功; 否則,如果在規(guī)定的時(shí)間內(nèi)沒有收到所有算子的報(bào)告,則認(rèn)為本周期快照制作失敗。

RocksDB實(shí)現(xiàn)增量checkpoint原理:

state backend中提供了一種RocksDb存儲(chǔ)checkpoint ,它是Flink提供的唯一可以實(shí)現(xiàn)增量checkpoint的方法。原理是每次生成checkpoint是會(huì)生成sst文件(不會(huì)再修改了),會(huì)和之前的文件進(jìn)行對(duì)比,每次上傳新增的sst文件即可,大概就是這樣。

喵嗚面試助手:一站式解決面試問題,你可以搜索微信小程序 [喵嗚面試助手]?或關(guān)注 [喵嗚刷題] -> 面試助手?免費(fèi)刷題。如有好的面試知識(shí)或技巧期待您的共享!文章來源地址http://www.zghlxwxcb.cn/news/detail-689311.html

到了這里,關(guān)于Flink的checkpoint是怎么實(shí)現(xiàn)的?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • flink如何利用checkpoint保證數(shù)據(jù)狀態(tài)一致性

    flink如何利用checkpoint保證數(shù)據(jù)狀態(tài)一致性

    這本質(zhì)上是一『盡力而為』的方法。保證數(shù)據(jù)或事件最多由應(yīng)用程序中的所有算子處理一次。 這意味著如果數(shù)據(jù)在被流應(yīng)用程序完全處理之前發(fā)生丟失,則不會(huì)進(jìn)行其他重試或者重新發(fā)送。下圖中的例子說明了這種情況。 應(yīng)用程序中的所有算子都保證數(shù)據(jù)或事件至少被處理

    2024年02月21日
    瀏覽(35)
  • Flink系列之:使用Flink CDC從數(shù)據(jù)庫采集數(shù)據(jù),設(shè)置checkpoint支持?jǐn)?shù)據(jù)采集中斷恢復(fù),保證數(shù)據(jù)不丟失

    博主相關(guān)技術(shù)博客: Flink系列之:Debezium采集Mysql數(shù)據(jù)庫表數(shù)據(jù)到Kafka Topic,同步kafka topic數(shù)據(jù)到StarRocks數(shù)據(jù)庫 Flink系列之:使用Flink Mysql CDC基于Flink SQL同步mysql數(shù)據(jù)到StarRocks數(shù)據(jù)庫

    2024年02月11日
    瀏覽(31)
  • 【大數(shù)據(jù)】Flink 架構(gòu)(五):檢查點(diǎn) Checkpoint(看完即懂)

    【大數(shù)據(jù)】Flink 架構(gòu)(五):檢查點(diǎn) Checkpoint(看完即懂)

    《 Flink 架構(gòu) 》系列(已完結(jié)),共包含以下 6 篇文章: Flink 架構(gòu)(一):系統(tǒng)架構(gòu) Flink 架構(gòu)(二):數(shù)據(jù)傳輸 Flink 架構(gòu)(三):事件時(shí)間處理 Flink 架構(gòu)(四):狀態(tài)管理 Flink 架構(gòu)(五):檢查點(diǎn) Checkpoint(看完即懂) Flink 架構(gòu)(六):保存點(diǎn) Savepoint ?? 如果您覺得這篇

    2024年02月19日
    瀏覽(23)
  • 源碼解析Flink源節(jié)點(diǎn)數(shù)據(jù)讀取是如何與checkpoint串行執(zhí)行

    源碼解析Flink源節(jié)點(diǎn)數(shù)據(jù)讀取是如何與checkpoint串行執(zhí)行 Flink版本:1.13.6 前置知識(shí):源節(jié)點(diǎn)的Checkpoint是由Checkpointcoordinate觸發(fā),具體是通過RPC調(diào)用TaskManager中對(duì)應(yīng)的Task的StreamTask類的performChecpoint方法執(zhí)行Checkpoint。 本文思路:本文先分析checkpoint階段,然后再分析數(shù)據(jù)讀取階段,

    2024年02月14日
    瀏覽(27)
  • Flink非對(duì)齊checkpoint原理(Flink Unaligned Checkpoint)

    Flink非對(duì)齊checkpoint原理(Flink Unaligned Checkpoint)

    為什么提出Unaligned Checkpoint(UC)? 因?yàn)榉磯簢?yán)重時(shí)會(huì)導(dǎo)致Checkpoint失敗,可能導(dǎo)致如下問題 恢復(fù)時(shí)間長-服務(wù)效率低 非冪等和非事務(wù)會(huì)導(dǎo)致數(shù)據(jù)重復(fù) 持續(xù)反壓導(dǎo)致任務(wù)加入死循環(huán)(可能導(dǎo)致數(shù)據(jù)丟失,例如超過kafka的過期時(shí)間無法重置offset) UC的原理 UC有兩個(gè)階段(UC主要是

    2024年02月14日
    瀏覽(28)
  • 【Flink入門修煉】2-3 Flink Checkpoint 原理機(jī)制

    【Flink入門修煉】2-3 Flink Checkpoint 原理機(jī)制

    如果讓你來做一個(gè)有狀態(tài)流式應(yīng)用的故障恢復(fù),你會(huì)如何來做呢? 單機(jī)和多機(jī)會(huì)遇到什么不同的問題? Flink Checkpoint 是做什么用的?原理是什么? Checkpoint 是對(duì)當(dāng)前運(yùn)行狀態(tài)的完整記錄。程序重啟后能從 Checkpoint 中恢復(fù)出輸入數(shù)據(jù)讀取到哪了,各個(gè)算子原來的狀態(tài)是什么,并

    2024年04月25日
    瀏覽(25)
  • Flink 學(xué)習(xí)八 Flink 容錯(cuò)機(jī)制 & checkpoint & savepoint

    Flink 學(xué)習(xí)八 Flink 容錯(cuò)機(jī)制 & checkpoint & savepoint

    https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/concepts/stateful-stream-processing/ 上一節(jié)講述 狀態(tài)后端 ;Flink是一個(gè) 帶狀態(tài)stateful 的數(shù)據(jù)處理系統(tǒng),在處理數(shù)據(jù)的過程中,各個(gè)算子的記錄的狀態(tài)會(huì)隨著算子處理的狀態(tài)而改變 ; 狀態(tài)后端 負(fù)責(zé)將狀態(tài)保存在內(nèi)存或外部持久化存儲(chǔ)中 (內(nèi)存

    2024年02月09日
    瀏覽(22)
  • Flink本地checkpoint測(cè)試

    Flink本地checkpoint測(cè)試

    在本地IDEA測(cè)試中,使用本地文件存儲(chǔ)系統(tǒng),作為checkpoint的存儲(chǔ)系統(tǒng),將備份數(shù)據(jù)存儲(chǔ)到本地文件中,作業(yè)停止后,從本地備份數(shù)據(jù)啟動(dòng)Flink程序。 主要分為兩步: 1)備份數(shù)據(jù) 2)從備份數(shù)據(jù)啟動(dòng) 備份數(shù)據(jù)的配置,和使用HDFS文件體統(tǒng)類似,只不過路徑填寫成本地文件系統(tǒng)的

    2024年02月15日
    瀏覽(18)
  • Flink: checkPoint

    依據(jù)1.17.1 最新版本的內(nèi)容研究下期運(yùn)作原理,總的來說其實(shí)就是設(shè)置一些參數(shù),這些參數(shù)就會(huì)影響到如何存儲(chǔ)checkpoint的問題.用起來沒什么難的,參數(shù)配置的組合到是挺多cuiyaonan2000@163.com 參考資料: Checkpointing | Apache Flink State Backends | Apache Flink Flink 中的每個(gè)方法或算子都能夠是 有

    2024年02月12日
    瀏覽(21)
  • Flink源碼之Checkpoint執(zhí)行流程

    Flink源碼之Checkpoint執(zhí)行流程

    Checkpoint完整流程如上圖所示: JobMaster的CheckpointCoordinator向所有SourceTask發(fā)送RPC觸發(fā)一次CheckPoint SourceTask向下游廣播CheckpointBarrier SouceTask完成狀態(tài)快照后向JobMaster發(fā)送快照結(jié)果 非SouceTask在Barrier對(duì)齊后完成狀態(tài)快照向JobMaster發(fā)送快照結(jié)果 JobMaster保存SubTask快照結(jié)果 JobMaster收到所

    2024年02月11日
    瀏覽(44)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包