亚洲欧美日本A∨在线观看_黑人video粗暴亚裔_JAPANESE日本丰满少妇_九九精品91久久久久久再现_国产MD视频一区二区三区

首頁 > 聚焦 >

世界觀點(diǎn):大數(shù)據(jù)Flink進(jìn)階(三):Flink核心特性

發(fā)表時(shí)間:2023-03-21 11:02:34 來源:騰訊云

Flink核心特性

Flink具有先進(jìn)的架構(gòu)理念,擁有諸多的優(yōu)秀特性以及完善的編程接口,F(xiàn)link的優(yōu)勢(shì)有以下幾點(diǎn):


(相關(guān)資料圖)

一、批流一體化

Flink可以在底層用同樣的數(shù)據(jù)抽象和計(jì)算模型來進(jìn)行批處理和流處理。事實(shí)上,F(xiàn)link在設(shè)計(jì)理念上沒有刻意強(qiáng)調(diào)批處理和流處理,而更多的強(qiáng)調(diào)數(shù)據(jù)的有界和無界,這就意味著Flink能夠滿足企業(yè)業(yè)務(wù)需求,無需用兩種甚至多種框架分別實(shí)現(xiàn)批處理和流處理,這大大降低了架構(gòu)設(shè)計(jì)、開發(fā)、運(yùn)維的復(fù)雜度,可以節(jié)省大量的人力成本。

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

Flink是目前開源社區(qū)中唯一一套集高吞吐、低延遲、高性能三者于一身的分布式流式數(shù)據(jù)處理框架。像Apache Spark也只能兼顧高吞吐和高性能特性,主要因?yàn)樵赟parkStreaming流式計(jì)算中無

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

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

在流式計(jì)算領(lǐng)域中,窗口計(jì)算的地位舉足輕重,但目前大多數(shù)框架窗口計(jì)算采用的都是系統(tǒng)時(shí)間(Process Time),也是事件傳輸?shù)接?jì)算框架處理時(shí),系統(tǒng)主機(jī)的當(dāng)前時(shí)間。Flink能夠支持基于事件時(shí)間(Event Time)語義進(jìn)行窗口計(jì)算,也就是使用事件產(chǎn)生的時(shí)間,這種基于事件驅(qū)動(dòng)的機(jī)制使得事件即使亂序到達(dá),流系統(tǒng)也能夠計(jì)算出精確的結(jié)果,保持了事件原本產(chǎn)生時(shí)的時(shí)序性,盡可能避免網(wǎng)絡(luò)傳輸或硬件系統(tǒng)的影響。

四、支持有狀態(tài)計(jì)算

Flink在1.4版本中實(shí)現(xiàn)了狀態(tài)管理,所謂狀態(tài)就是在流式計(jì)算過程中將算子的中間結(jié)果數(shù)據(jù)保存在內(nèi)存或者文件系統(tǒng)中,等下一個(gè)事件進(jìn)入算子后可以從之前的狀態(tài)中獲取中間結(jié)果中計(jì)算當(dāng)前的結(jié)果, 從而無須每次都基于全部的原始數(shù)據(jù)來統(tǒng)計(jì)結(jié)果,這種方式極大地提升了系統(tǒng)的性能,并降低了數(shù)據(jù)計(jì)算過程的資源消耗。對(duì)于數(shù)據(jù)量大且運(yùn)算邏輯非常復(fù)雜的流式計(jì)算場(chǎng)景,有狀態(tài)計(jì)算發(fā)揮了非常重要的作用。

五、支持高度靈活的窗口(Window)操作

在流處理應(yīng)用中,數(shù)據(jù)是連續(xù)不斷的,需要通過窗口的方式對(duì)流數(shù)據(jù)進(jìn)行一定范圍的聚合計(jì)算,例如統(tǒng)計(jì)在過去的1分鐘內(nèi)有多少用戶點(diǎn)擊某一網(wǎng)頁,在這種情況下,我們必須定義一個(gè)窗口,用來收集最近一分鐘內(nèi)的數(shù)據(jù),并對(duì)這個(gè)窗口內(nèi)的數(shù)據(jù)進(jìn)行再計(jì)算。Flink將窗口劃分為基于Time、Count、Session,以及Data-driven等類型的窗口操作,窗口可以用靈活的觸發(fā)條件定制化來達(dá)到對(duì)復(fù)雜的流傳輸模式的支持,用戶可以定義不同的窗口觸發(fā)機(jī)制來滿足不同的需求。

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

Flink能夠分布式運(yùn)行在上千個(gè)節(jié)點(diǎn)上,將一個(gè)大型計(jì)算任務(wù)的流程拆解成小的計(jì)算過程,然后將task分布到并行節(jié)點(diǎn)上進(jìn)行處理。在任務(wù)執(zhí)行過程中,能夠自動(dòng)發(fā)現(xiàn)事件處理過程中的錯(cuò)誤而導(dǎo)致數(shù)據(jù)不一致的問題,比如:節(jié)點(diǎn)宕機(jī)、網(wǎng)路傳輸問題,或是由于用戶因?yàn)樯?jí)或修復(fù)問題而導(dǎo)致計(jì)算服務(wù)重啟等。在這些情況下,通過基于分布式快照技術(shù)的Checkpoints,將執(zhí)行過程中的狀態(tài)信息進(jìn)行持久化存儲(chǔ),一旦任務(wù)出現(xiàn)異常停止,F(xiàn)link就能夠從Checkpoints中進(jìn)行任務(wù)的自動(dòng)恢復(fù),以確保數(shù)據(jù)在處理過程中的一致性(Exactly-Once)。

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

內(nèi)存管理是所有計(jì)算框架需要重點(diǎn)考慮的部分,尤其對(duì)于計(jì)算量比較大的計(jì)算場(chǎng)景,數(shù)據(jù)在內(nèi)存中該如何進(jìn)行管理顯得至關(guān)重要。針對(duì)內(nèi)存管理,F(xiàn)link實(shí)現(xiàn)了自身管理內(nèi)存的機(jī)制,盡可能減少JVM GC 對(duì)系統(tǒng)的影響。另外,F(xiàn)link通過序列化/反序列化方法將所有的數(shù)據(jù)對(duì)象轉(zhuǎn)換成二進(jìn)制在內(nèi)存中存儲(chǔ),降低數(shù)據(jù)存儲(chǔ)的大小的同時(shí),能夠更加有效地對(duì)內(nèi)存空間進(jìn)行利用,降低GC帶來的性能下降或任務(wù)異常的風(fēng)險(xiǎn),因此Flink較其他分布式處理的框架會(huì)顯得更加穩(wěn)定,不會(huì)因?yàn)镴VM GC等問題而影響整個(gè)應(yīng)用的運(yùn)行。

八、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)維操作等操作。值得一提的是, Flink通過Save Points技術(shù)將任務(wù)執(zhí)行的快照保存在存儲(chǔ)介質(zhì)上,當(dāng)任務(wù)重啟的時(shí)候可以直接從事先保存的Save Points恢復(fù)原有的計(jì)算狀態(tài),使得任務(wù)繼續(xù)按照停機(jī)之前的狀態(tài)運(yùn)行,Save Points技術(shù)可以讓用戶更好地管理和運(yùn)維實(shí)時(shí)流式應(yīng)用。

九、多層級(jí)API

Flink為用戶提供了多個(gè)層級(jí)API,用戶可以根據(jù)自身對(duì)于表達(dá)力和易用性的需求來選擇,不同的API 層級(jí)可以混用以實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯。

標(biāo)簽:

Copyright ©  2015-2022 太平洋產(chǎn)業(yè)網(wǎng)版權(quán)所有  備案號(hào):豫ICP備2022016495號(hào)-17   聯(lián)系郵箱:93 96 74 66 9@qq.com