本發(fā)明涉及分布式數(shù)據(jù)流處理,具體為一種基于flink的分布式數(shù)據(jù)流異步快照的方法及系統(tǒng)。
背景技術(shù):
1、為了確保分布式處理系統(tǒng)在任務(wù)故障發(fā)生時能夠進(jìn)行彈性恢復(fù),一種常見的方法是使用全局快照技術(shù)。全局快照是執(zhí)行圖在某一特定時間點的完整狀態(tài),它捕獲了所有相關(guān)的數(shù)據(jù)和狀態(tài)信息。
2、在分布式系統(tǒng)中,全局快照的主要目的是提供一個一致的恢復(fù)點,以便在發(fā)生故障時能夠快速恢復(fù)計算。通過定期捕獲全局快照,系統(tǒng)可以在故障發(fā)生后迅速恢復(fù)到一致的狀態(tài),確保計算的可靠性和一致性。全局快照的捕獲通常涉及停止整個計算系統(tǒng)的操作,對所有任務(wù)和數(shù)據(jù)進(jìn)行一次性全面地捕獲。一旦完成快照,系統(tǒng)將繼續(xù)其操作。這種方法的一個主要缺點是它需要停止整個系統(tǒng)的操作,這可能會導(dǎo)致長時間的停機(jī)時間,特別是在大規(guī)模系統(tǒng)中。
3、為了解決這個問題,一些系統(tǒng)采用了異步全局快照技術(shù)。這些系統(tǒng)通常采用分布式日志來記錄任務(wù)的元數(shù)據(jù)和數(shù)據(jù)狀態(tài)。當(dāng)系統(tǒng)需要恢復(fù)到一致的全局狀態(tài)時,它會遍歷日志并應(yīng)用相應(yīng)的操作來重建快照。這種方法的好處是它不需要停止整個系統(tǒng)的操作,而是可以在不中斷正常處理的情況下進(jìn)行快照。然而,實現(xiàn)異步全局快照的算法通常比較復(fù)雜,并且需要仔細(xì)設(shè)計以確保系統(tǒng)的正確性和可靠性。
4、此外,為了提高全局快照的效率,一些系統(tǒng)采用增量快照技術(shù)。增量快照只捕獲自上次快照以來發(fā)生更改的數(shù)據(jù)和狀態(tài)信息,而不是整個執(zhí)行圖的狀態(tài)。這種方法可以減少快照的體積和捕獲時間,從而提高系統(tǒng)的性能和響應(yīng)能力??偟膩碚f,全局快照是分布式處理系統(tǒng)中的一種重要技術(shù),它有助于確保計算的可靠性和一致性。然而,實現(xiàn)高效的全局快照需要仔細(xì)設(shè)計算法和系統(tǒng)架構(gòu),并考慮各種因素以確保系統(tǒng)的正確性和可靠性。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于flink的分布式數(shù)據(jù)流異步快照的方法及系統(tǒng),以解決上述背景技術(shù)中提出的問題。
2、為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:一種基于flink的分布式數(shù)據(jù)流異步快照的方法,所述方法包括以下步驟:
3、設(shè)計并執(zhí)行一種快照算法,該算法確保在所有進(jìn)程均為活動狀態(tài)的情況下,在有限時間內(nèi)完成,從而滿足終止性要求;
4、在執(zhí)行快照時,維護(hù)數(shù)據(jù)流的因果順序,確保記錄在快照中的交付順序與實際任務(wù)執(zhí)行中的順序一致,以滿足可行性要求。
5、優(yōu)選的,在無環(huán)數(shù)據(jù)流環(huán)境中,還包括以下步驟:
6、在輸入數(shù)據(jù)流中定期注入特殊的屏障標(biāo)記,以模擬執(zhí)行階段;
7、當(dāng)每個任務(wù)接收到表示執(zhí)行階段的屏障時,將其當(dāng)前的操作狀態(tài)集納入快照中,實現(xiàn)無持久化通道狀態(tài)的快照機(jī)制。
8、優(yōu)選的,在包含有向循環(huán)的數(shù)據(jù)流環(huán)境中,還包括以下步驟:
9、通過靜態(tài)分析識別循環(huán)中的后向邊;
10、在快照過程中,對每個任務(wù)在從常規(guī)輸入接收屏障后,為從后向邊接收到的所有記錄創(chuàng)建下游備份日志;
11、將屏障推送到整個執(zhí)行圖,包括后向邊,以確保循環(huán)內(nèi)的記錄能夠一致地包含在快照中,并在恢復(fù)時能夠重新放回傳輸中。
12、優(yōu)選的,還包括一種故障恢復(fù)機(jī)制,該機(jī)制包括:
13、在發(fā)生故障時,從最后一個全局快照開始重新啟動整個執(zhí)行圖;
14、每個任務(wù)從持久存儲中檢索其快照狀態(tài),并恢復(fù)其備份日志中的記錄;
15、任務(wù)從其輸入通道中繼續(xù)攝取記錄,以恢復(fù)數(shù)據(jù)流的處理。
16、優(yōu)選的,故障恢復(fù)機(jī)制還包括部分圖恢復(fù)方案,具體步驟包括:
17、重新調(diào)度上游任務(wù)及其依賴關(guān)系,特別是那些輸出通道指向失敗任務(wù)的任務(wù);
18、為記錄標(biāo)記序列號,以在從源處發(fā)出的每條記錄上添加唯一標(biāo)識;
19、在恢復(fù)過程中,每個下游節(jié)點忽略序列號小于已處理序列號的記錄,以避免重復(fù)處理,從而實現(xiàn)精確一次語義的故障恢復(fù)。
20、一種基于flink的分布式數(shù)據(jù)流異步快照系統(tǒng),包括多個處理節(jié)點,每個節(jié)點執(zhí)行分布式數(shù)據(jù)流處理任務(wù),系統(tǒng)在不中斷數(shù)據(jù)流處理的情況下,異步生成全局一致的快照,以支持系統(tǒng)的故障恢復(fù)和容錯。
21、優(yōu)選的,系統(tǒng)包括一種快照算法,該算法通過向數(shù)據(jù)流中注入特殊屏障標(biāo)記來模擬執(zhí)行階段,并在每個階段結(jié)束時捕獲處理節(jié)點的操作狀態(tài)集,以構(gòu)建全局快照,從而確??煺盏慕K止性。
22、優(yōu)選的,系統(tǒng)處理無環(huán)數(shù)據(jù)流和包含循環(huán)的數(shù)據(jù)流,對于后者,系統(tǒng)通過靜態(tài)分析識別循環(huán)中的后向邊,并在快照期間對從后向邊接收的記錄進(jìn)行額外處理,以確保所有相關(guān)記錄均被包含在快照中,滿足快照的可行性要求。
23、優(yōu)選的,系統(tǒng)包括快照管理機(jī)制,用于快照的生成、存儲、檢索和版本控制,其中快照數(shù)據(jù)被持久化存儲于可靠的存儲介質(zhì)中,以便在需要時快速恢復(fù)系統(tǒng)狀態(tài)。
24、優(yōu)選的,系統(tǒng)還包括故障恢復(fù)機(jī)制,該機(jī)制支持全圖恢復(fù)和部分圖恢復(fù)兩種方式,在處理節(jié)點發(fā)生故障時,利用最新的全局快照數(shù)據(jù)恢復(fù)系統(tǒng)的運行狀態(tài),同時確保數(shù)據(jù)的精確一次處理語義,避免重復(fù)計算。
25、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
26、本發(fā)明提出的基于flink的分布式數(shù)據(jù)流異步快照的方法及系統(tǒng),引入了異步障礙快照算法,這是一種實現(xiàn)良好吞吐量的新快照技術(shù)。異步障礙快照算法是第一個考慮無環(huán)執(zhí)行拓?fù)渌枳钚顟B(tài)的算法。此外,還通過僅存儲需要恢復(fù)時重新處理的記錄來擴(kuò)展異步障礙快照算法以適應(yīng)有環(huán)執(zhí)行圖。在apache?flink上實現(xiàn)了異步障礙快照算法,并評估了方法與同步快照相比的效果。在早期階段,異步障礙快照算法顯示出良好的結(jié)果,對整體執(zhí)行吞吐量的影響較小,并且具有線性可擴(kuò)展性。
1.一種基于flink的分布式數(shù)據(jù)流異步快照的方法,其特征在于:所述方法包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種基于flink的分布式數(shù)據(jù)流異步快照的方法,在無環(huán)數(shù)據(jù)流環(huán)境中,其特征在于:還包括以下步驟:
3.根據(jù)權(quán)利要求1所述的一種基于flink的分布式數(shù)據(jù)流異步快照的方法,在包含有向循環(huán)的數(shù)據(jù)流環(huán)境中,其特征在于:還包括以下步驟:
4.根據(jù)權(quán)利要求1所述的一種基于flink的分布式數(shù)據(jù)流異步快照的方法,其特征在于:還包括一種故障恢復(fù)機(jī)制,該機(jī)制包括:
5.根據(jù)權(quán)利要求4所述的一種基于flink的分布式數(shù)據(jù)流異步快照的方法,其特征在于:故障恢復(fù)機(jī)制還包括部分圖恢復(fù)方案,具體步驟包括:
6.一種根據(jù)權(quán)利要求1-5任意一項所述的基于flink的分布式數(shù)據(jù)流異步快照的方法的基于flink的分布式數(shù)據(jù)流異步快照系統(tǒng),包括多個處理節(jié)點,每個節(jié)點執(zhí)行分布式數(shù)據(jù)流處理任務(wù),其特征在于:系統(tǒng)在不中斷數(shù)據(jù)流處理的情況下,異步生成全局一致的快照,以支持系統(tǒng)的故障恢復(fù)和容錯。
7.根據(jù)權(quán)利要求6所述的一種基于flink的分布式數(shù)據(jù)流異步快照系統(tǒng),其特征在于:系統(tǒng)包括一種快照算法,該算法通過向數(shù)據(jù)流中注入特殊屏障標(biāo)記來模擬執(zhí)行階段,并在每個階段結(jié)束時捕獲處理節(jié)點的操作狀態(tài)集,以構(gòu)建全局快照,從而確??煺盏慕K止性。
8.根據(jù)權(quán)利要求6所述的一種基于flink的分布式數(shù)據(jù)流異步快照系統(tǒng),其特征在于:系統(tǒng)處理無環(huán)數(shù)據(jù)流和包含循環(huán)的數(shù)據(jù)流,對于后者,系統(tǒng)通過靜態(tài)分析識別循環(huán)中的后向邊,并在快照期間對從后向邊接收的記錄進(jìn)行額外處理,以確保所有相關(guān)記錄均被包含在快照中,滿足快照的可行性要求。
9.根據(jù)權(quán)利要求6所述的一種基于flink的分布式數(shù)據(jù)流異步快照系統(tǒng),其特征在于:系統(tǒng)包括快照管理機(jī)制,用于快照的生成、存儲、檢索和版本控制,其中快照數(shù)據(jù)被持久化存儲于可靠的存儲介質(zhì)中,以便在需要時快速恢復(fù)系統(tǒng)狀態(tài)。
10.根據(jù)權(quán)利要求6所述的一種基于flink的分布式數(shù)據(jù)流異步快照系統(tǒng),其特征在于:系統(tǒng)還包括故障恢復(fù)機(jī)制,該機(jī)制支持全圖恢復(fù)和部分圖恢復(fù)兩種方式,在處理節(jié)點發(fā)生故障時,利用最新的全局快照數(shù)據(jù)恢復(fù)系統(tǒng)的運行狀態(tài),同時確保數(shù)據(jù)的精確一次處理語義,避免重復(fù)計算。