為什么Flink會(huì)成為下一代大數(shù)據(jù)處理框架的標(biāo)準(zhǔn)?

2021-02-20    分類: 網(wǎng)站建設(shè)

01 什么是Flink?

在當(dāng)前數(shù)據(jù)量激增傳統(tǒng)的時(shí)代,不同的業(yè)務(wù)場(chǎng)景都有大量的業(yè)務(wù)數(shù)據(jù)產(chǎn)生,對(duì)于這些不斷產(chǎn)生的數(shù)據(jù)應(yīng)該如何進(jìn)行有效地處理,成為當(dāng)下大多數(shù)公司所面臨的問題。

隨著雅虎對(duì)Hadoop的開源,越來越多的大數(shù)據(jù)處理技術(shù)開始涌入人們的視線,例如目前比較流行大數(shù)據(jù)處理引擎Apache Spark,基本上已經(jīng)取代了MapReduce成為當(dāng)前大數(shù)據(jù)處理的標(biāo)準(zhǔn)。

但隨著數(shù)據(jù)的不斷增長(zhǎng),新技術(shù)的不斷發(fā)展,人們逐漸意識(shí)到對(duì)實(shí)時(shí)數(shù)據(jù)處理的重要性,企業(yè)需要能夠同時(shí)支持高吞吐、低延遲、高性能的流處理技術(shù)來處理日益增長(zhǎng)的數(shù)據(jù)。

▲有狀態(tài)計(jì)算架構(gòu)

同時(shí)Flink支持高效容錯(cuò)的狀態(tài)管理,F(xiàn)link能夠?qū)⑵錉顟B(tài)維護(hù)在內(nèi)存或RockDB數(shù)據(jù)庫中,為了防止?fàn)顟B(tài)在計(jì)算過程中因?yàn)橄到y(tǒng)異常而出現(xiàn)丟失,F(xiàn)link周期性的通過分布式快照技術(shù)CheckPoints實(shí)現(xiàn)狀態(tài)的持久化維護(hù),使得在系統(tǒng)即使在停機(jī)或者異常的情況下都能正確的進(jìn)行狀態(tài)恢復(fù),從而保證在任何時(shí)間都能計(jì)算出正確的結(jié)果。

數(shù)據(jù)架構(gòu)的演變過程,伴隨著技術(shù)的不斷迭代更新,F(xiàn)link具有先進(jìn)的架構(gòu)理念,以及諸多的優(yōu)秀特性,以及完善的編程接口,而Flink也在每一次的Release版本中,不斷推出新的特性。

例如Queryable State功能的提出,將直接容許用戶通過遠(yuǎn)程的方式直接獲取流式計(jì)算任務(wù)的狀態(tài)信息,也就是說數(shù)據(jù)不需要落地?cái)?shù)據(jù)庫就能直接從流式應(yīng)用中直接查詢出,對(duì)于實(shí)時(shí)交互式的查詢業(yè)務(wù)可以直接從Flink的狀態(tài)中查詢最新的結(jié)果,當(dāng)然這個(gè)功能目前還屬于Beta版本,但是相信在不久的未來,會(huì)變得越來越完善,那時(shí)Flink將不僅作為實(shí)時(shí)流式處理的框架,更多的可能會(huì)成為一套實(shí)時(shí)的存儲(chǔ)引擎,會(huì)讓更多的用戶從有狀態(tài)計(jì)算的技術(shù)中獲取收益。

為什么Flink會(huì)成為下一代大數(shù)據(jù)處理框架的標(biāo)準(zhǔn)?

同時(shí)支持高吞吐、低延遲、高性能

Flink是一套集高吞吐,低延遲,高性能三者于一身的分布式流式數(shù)據(jù)處理框架。

非常成熟的計(jì)算框架Apache Spark也只能兼顧高吞吐和高性能特性,在Spark Streaming流式計(jì)算中無法做到低延遲保障;而Apache Storm只能支持低延遲和高性能特性,但是無法滿足高吞吐的要求。而對(duì)于滿足高吞吐,低延遲,高性能這三個(gè)目標(biāo)對(duì)分布式流式計(jì)算框架是非常重要的。

支持事件時(shí)間(Event Time)概念

在流式計(jì)算領(lǐng)域中,窗口計(jì)算的地位舉足輕重,但目前大多數(shù)計(jì)算框架窗口計(jì)算所采用的都是系統(tǒng)時(shí)間(Process Time),也是事件傳輸?shù)接?jì)算框架處理時(shí),系統(tǒng)為什么Flink會(huì)成為下一代大數(shù)據(jù)處理框架的標(biāo)準(zhǔn)?

基于輕量級(jí)分布式快照(Snapshot)實(shí)現(xiàn)的容錯(cuò)

Flink能夠分布式運(yùn)行在上千個(gè)節(jié)點(diǎn)之上,將一個(gè)大型計(jì)算的流程拆解成小的計(jì)算過程,然后將計(jì)算過程分布到單臺(tái)并行節(jié)點(diǎn)上進(jìn)行處理。

在任務(wù)執(zhí)行過程中,能夠自動(dòng)的發(fā)現(xiàn)事件處理過程中的錯(cuò)誤而導(dǎo)致數(shù)據(jù)不一致的問題,常見的錯(cuò)誤類型例如:節(jié)點(diǎn)宕機(jī),或者網(wǎng)路傳輸問題,或是由于用戶因?yàn)樯?jí)或修復(fù)問題而導(dǎo)致計(jì)算服務(wù)重啟等。

在這些情況下,通過基于分布式快照技術(shù)的Checkpoints,將執(zhí)行過程中的任務(wù)信息進(jìn)行持久化存儲(chǔ),一旦任務(wù)出現(xiàn)異常宕機(jī),F(xiàn)link能夠進(jìn)行任務(wù)的自動(dòng)恢復(fù),從而確保數(shù)據(jù)在處理過程中的一致性。

基于JVM實(shí)現(xiàn)獨(dú)立的內(nèi)存管理

內(nèi)存管理是每套計(jì)算框架需要重點(diǎn)考慮的領(lǐng)域,尤其對(duì)于計(jì)算量比較大的計(jì)算場(chǎng)景,數(shù)據(jù)在內(nèi)存中該如何進(jìn)行管理,針對(duì)內(nèi)存管理這塊,F(xiàn)link實(shí)現(xiàn)了自身管理內(nèi)存的機(jī)制,盡可能減少Full GC對(duì)系統(tǒng)的影響。

另外通過自定義序列化/反序列化方法將所有的對(duì)象轉(zhuǎn)換成二進(jìn)制在內(nèi)存中存儲(chǔ),降低數(shù)據(jù)存儲(chǔ)的大小,更加有效的對(duì)內(nèi)存空間進(jìn)行利用,降低GC所帶來的性能下降或者任務(wù)停止的風(fēng)險(xiǎn),同時(shí)提升了分布式處理過數(shù)據(jù)傳輸?shù)男阅堋?/p>

因此Flink較其他分布式處理的框架則會(huì)顯得更加穩(wěn)定,不會(huì)因?yàn)镴VM GC等問題而導(dǎo)致整個(gè)應(yīng)用宕機(jī)的問題。

Save Points(保存點(diǎn))

對(duì)于7*24小時(shí)運(yùn)行的流式應(yīng)用,數(shù)據(jù)源源不斷的接入,在一段時(shí)間內(nèi)應(yīng)用的終止都有可能導(dǎo)致數(shù)據(jù)的丟失或者計(jì)算結(jié)果的不準(zhǔn)確性,例如進(jìn)行版本的升級(jí),停機(jī)運(yùn)維操作等,都能導(dǎo)致這種情況發(fā)生。

然而值得一提的是Flink通過其Save Points技術(shù)能夠?qū)⑷蝿?wù)執(zhí)行的快照(Snapshot)保存在存儲(chǔ)介質(zhì)上,等待任務(wù)重啟的時(shí)候可以直接從實(shí)現(xiàn)保存的Save Points恢復(fù)原有的計(jì)算狀態(tài),使得任務(wù)繼續(xù)按照停機(jī)之前的狀態(tài)繼續(xù)運(yùn)行,Save Points技術(shù)可以讓用戶更好的管理和運(yùn)維實(shí)時(shí)流式應(yīng)用。

同時(shí)Flink除了上述的特性之外也具有其他非常優(yōu)秀的特性,可以讓用戶有更多選擇。Flink具備非常多的優(yōu)秀特性,這不僅讓Flink在社區(qū)的知名度越來越高,也吸引了眾多的企業(yè)參與研發(fā)和使用Flink這項(xiàng)技術(shù)。

當(dāng)前名稱:為什么Flink會(huì)成為下一代大數(shù)據(jù)處理框架的標(biāo)準(zhǔn)?
網(wǎng)頁路徑:http://www.muchs.cn/news19/101919.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)公司、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司