亚洲日本欧美日韩高观看,性高湖久久久久久久久,亚洲av成人噜噜无码网站,亚洲欧美日韩国产一区二区动图,亚洲欧美日韩国产精品一区二区


學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

一文帶你了解BAT,TMD都在用的實時計算引擎Flink

來源:北大青鳥總部 2023年06月27日 09:19

摘要: Flink是一個針對流數(shù)據(jù)、批數(shù)據(jù)進行處理的分布式處理引擎,可以處理有界限的數(shù)據(jù)、無界限的數(shù)據(jù)。在Flink的架構(gòu)中包含四層,分別是Deploy部署層、Core核心層、API接口層、Lib擴展庫層。

2020年天貓雙十一全球狂歡季成交額4982億元人民幣。在那年的整個雙十一中,我們通過Dashboard實時數(shù)據(jù)大盤可以知道每分鐘的成交額、訂單數(shù)、爆款商品、爆款售賣地區(qū)等等,這個Dashboard背后的技術(shù)便是數(shù)據(jù)實時計算流式計算。

所謂實時計算指的是實時可以獲取到想要的數(shù)據(jù),比如我想查詢我今年雙十一的購買額,輸入姓名、時間后立即可以統(tǒng)計出數(shù)據(jù),所謂流式計算指的是我每買一件東西,購買量自動加1,訂單額自動增加。實時計算和流式計算都是相對離線計算的改善,離線計算有一定的延遲,它把數(shù)據(jù)從存儲中取出來,進行統(tǒng)計,最后再呈現(xiàn)。

我們在雙十一成交額大盤所看到的便是實時計算與流式計算的結(jié)合,實現(xiàn)流式計算的技術(shù)有很多,比如storm、spark、flink,而這其中最流行、使用最廣的便是flink,接下來我們就一起來看看flink到底是什么技術(shù)



Flink是一個針對流數(shù)據(jù)、批數(shù)據(jù)進行處理的分布式處理引擎,可以處理有界限的數(shù)據(jù)(數(shù)據(jù)量有限,不會改變的數(shù)據(jù)集合,比如雙十一當(dāng)天數(shù)據(jù)量)、無界限的數(shù)據(jù)(比如淘寶用戶產(chǎn)生的實時交互數(shù)據(jù)、股票市場的實時交易記錄)。在Flink的架構(gòu)中包含四層,分別是Deploy部署層、Core核心層API接口層、Lib擴展庫層。

在部署層主要是Flink的部署模式,它支持Local本地化部署,直接在IDE代碼編輯器中就可以運行程序;也支持集群化部署,在Kubernetes或使用Hadoop的Yarn來做集群調(diào)度;也支持云上部署,通過彈性主機實現(xiàn)自動擴縮容。在Core核心層,主要是分布式流式處理引擎,支持分布式stream處理,支持jobgraph到execution的映射調(diào)度,支持上層API接口的任務(wù)。在API層主要是提供API給到開發(fā)者編寫分布式任務(wù),包含DataSetAPI、DataStreamAPI兩類API,DataStreamAPI主要用于對流數(shù)據(jù)進行處理,它可以將流式數(shù)據(jù)抽象成分布式的數(shù)據(jù)流,開發(fā)者就很方便的對分布式數(shù)據(jù)流進行操作處理,DataSetAPI主要對于數(shù)據(jù)進行批量處理,將靜態(tài)的、有限的數(shù)據(jù)抽象成分布式的數(shù)據(jù)集處理。在Lib擴展庫層主要是通過擴展庫方式提供更多使用場景給到開發(fā)者,比如CEP復(fù)雜事件處理、Table把結(jié)構(gòu)化數(shù)據(jù)抽象成關(guān)系表,并支持類SQL語句查詢、FlinkML支持機器學(xué)習(xí)、Gelly圖計算庫支持圖處理。



了解完Flink的基礎(chǔ)框架之后,我們再來看看Flink的基本編程模型是怎么樣的?在Flink中主要是三個步驟,數(shù)據(jù)源進行數(shù)據(jù)輸入、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)輸出,開發(fā)者可以把數(shù)據(jù)庫的數(shù)據(jù)或自己本地文件數(shù)據(jù)或消息隊列Kafka的數(shù)據(jù)通過API接口傳遞給到Flink,F(xiàn)link處理引擎將數(shù)據(jù)轉(zhuǎn)化成按時間窗口排序或按最熱門排序或按地區(qū)聚合等數(shù)據(jù),最后再通過Sink將數(shù)據(jù)輸出到消息隊列或數(shù)據(jù)大盤中進行展示。



在Flink的處理引擎中,數(shù)據(jù)是這樣進行流轉(zhuǎn),開發(fā)者編寫Flink應(yīng)用程序代碼,通過Client傳遞給到JobManager,JobManager是Flink的Master節(jié)點,負(fù)責(zé)安排任務(wù)給到TaskManager去執(zhí)行,同時管理TaskManager節(jié)點的調(diào)度情況,如果忙不過來或者故障,再把任務(wù)分配給到其它的TaskManager。TaskManager主要負(fù)責(zé)接收來自JobManager的任務(wù),一個TaskManager占據(jù)一個JVM內(nèi)存,在TaskManager中還包含TaskSlot的概念,用于內(nèi)存分配管理,一個Slot代表為其分配100%的內(nèi)存空間,兩個則代表為每個分配50%的空間,每個Slot占據(jù)1個線程來具體的執(zhí)行任務(wù)。



在DevOps工程師文化、Kubernetes容器技術(shù)盛行的互聯(lián)網(wǎng),F(xiàn)link也可以聯(lián)同二者進行工作,尤其是在大廠,基本都是這樣的架構(gòu)運行原理。開發(fā)人員編寫好Flink任務(wù)代碼,通過Git的push事件進行代碼提交,同時觸發(fā)了對應(yīng)的Jenkins集群,在Kubernetes中進行JobManager、TaskManager的部署,JobManager和TaskManager占據(jù)一個或多個POD,實現(xiàn)了自動彈性伸縮,開發(fā)者或運維人員基于Kubernetes還可以調(diào)度管理Flink系統(tǒng)。



本文介紹了Flink的基本架構(gòu)編程模型、運行原理,它還有很多應(yīng)用場景。我們抽象的從三個維度來看:

1、基于事件驅(qū)動,開發(fā)者將采集的事件不斷放入消息隊列,F(xiàn)link不斷的進行消息隊列數(shù)據(jù)消費,每消費一條數(shù)據(jù),則觸發(fā)一個動作,在欺詐檢測、異常檢測、基于規(guī)則的告警、業(yè)務(wù)流程監(jiān)控中都可以使用Flink的這個特性;

2、分析場景,開發(fā)者將數(shù)據(jù)實時或周期性的寫入消息隊列,F(xiàn)link不斷的將應(yīng)用源數(shù)據(jù)做實時計算,不斷更新數(shù)據(jù)庫或HDFS,最后做大屏展示或數(shù)據(jù)報表,比如雙十一的DashBoard;

3、管道式ETL,即提取數(shù)據(jù)放到數(shù)據(jù)庫或文件系統(tǒng)當(dāng)中。下圖是Flink在阿里巴巴內(nèi)部的主要應(yīng)用場景。



除了阿里之外,在百度、騰訊、美團、滴滴、頭條、京東、拼多多等公司,F(xiàn)link的應(yīng)用也是非常普及的。在互聯(lián)網(wǎng)流量為王時代,基于大數(shù)據(jù)去做離線分析、實時分析是必不可少的,數(shù)據(jù)開發(fā)工程師的薪酬也非常可人,掌握Flink基礎(chǔ)使用知識也是必備技能,如果你對大數(shù)據(jù)開發(fā)感興趣,那么趕快學(xué)習(xí)上車Flink吧~


標(biāo)簽: flink
報名優(yōu)惠
免費試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接