精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

雙維度剖析Flink整體架構

開發 架構
從2014年開源到現在,Flink已經發展成一套非常成熟的大數據處理引擎,同時被很多公司作為流數據處理平臺的底層技術。本文為大家介紹Flink的架構及其組成成分。

[[416662]]

本文轉載自微信公眾號「數倉寶貝庫」,作者張利兵。轉載本文請聯系數倉寶貝庫公眾號。

一架構介紹

Flink系統架構主要分為APIs & Libraries、Core和Deploy三層,如圖1所示,其中APIs層主要實現了面向流處理對應的DataStream API,面向批處理對應的DataSet API。Libraries層也被稱作Flink應用組件層,是根據API層的劃分,在API層之上構建滿足了特定應用領域的計算框架,分別對應了面向流處理和面向批處理兩類,其中面向流處理支持CEP(復雜事件處理)、基于類似SQL的操作(基于Table的關系操作);面向批處理支持Flink ML(機器學習庫)、Gelly(圖處理)。運行時層提供了Flink計算的全部核心實現,例如支持分布式Stream作業執行、JobGraph到ExecutionGraph的映射和調度等,為API層提供了基礎服務。Deploy層支持多種部署模式,包括本地、集群(Standalone、YARN、Kubernetes)及云部署(GCE/EC2)。

圖1 Flink整體架構

1、編程接口

Flink提供了多種抽象的編程接口,適用于不同層級的用戶。數據分析人員和偏向業務的數據開發人員可以使用Flink SQL定義流式作業。如圖2所示,Flink編程接口分為4層。

圖2 Flink編程接口抽象

Flink SQL

一項大數據技術如果想被用戶接受和使用,除了應具有先進的架構理念之外,另一點非常重要的就是要具有非常好的易用性。我們知道雖然Pig中的操作更加靈活和高效,但是在都滿足數據處理需求的前提下,數據開發者更愿意選擇Hive作為大數據處理的開發工具。其中最重要的原因是,Hive能夠基于SQL標準進行拓展,提出了HQL語言,這就讓很多只會SQL的用戶也能夠快速掌握大數據處理技術。因此Hive技術很快得到普及。

對于Flink同樣如此,如果想贏得更多的用戶,就必須不斷增強易用性。FlinkSQL基于關系型概念構建流式和離線處理應用,使用戶能夠更加簡單地通過SQL構建Flink作業。

Table API

Flink SQL解析生成邏輯執行計劃和物理執行計劃,然后轉換為Table之間的操作,最終轉換為JobGraph并運行在集群上。Table API和Spark中的DataSet/DataFrame接口類似,都提供了面向領域語言的編程接口。相比Flink SQL,Table API更加靈活,既可以在Java & Scala SDK中與DataStream和DataSet API相互轉換,也能結合Flink SQL進行數據處理。

DataStream & DataSet API

在早期的Flink版本中,DataSet API和DataStream API分別用于流處理和批處理場景。DataSet用于處理離線數據集,DataStream用于處理流數據集。DataFlow模型希望使用同一套流處理框架統一處理有界和無界數據,那么為什么Flink還要抽象出兩套編程接口來處理有界數據集和無界數據集呢?這也是近年來Flink社區不斷探討的話題。目前Table和SQL API層面雖然已經能夠做到批流一體,但這僅是在邏輯層面上的,最終還是會轉換成DataSet API和DataStream API對應的作業。后期Flink社區將逐漸通過DataStream處理有界數據集和無界數據集,社區已經在1.11版本中對DataStream API中的SourceFunction接口進行了重構,使DataStream可以接入和處理有界數據集。在后期的版本中,Flink將逐步實現真正意義上的批流一體化。

Stateful Processing Function接口

Stateful Processing Function接口提供了強大且靈活的編程能力,在其中可以直接操作狀態數據、TimeService等服務,同時可以注冊事件時間和處理時間回調定時器,使程序能夠實現更加復雜的計算。使用Stateful Processing Function接口需要借助DataStream API。雖然Stateful Processing Function接口靈活度很高,但是接口使用復雜度也相對較高,且在DataStream API中已經基于Stateful Process Function接口封裝了非常豐富的算子,這些算子可以直接使用,因此,除非用戶需要自定義比較復雜的算子(如直接操作狀態數據等),否則無須使用Stateful Processing Function接口開發Flink作業。

2、運行時執行引擎

用戶使用組件棧和接口編寫的Flink作業最終都會在客戶端轉換成JobGraph對象,然后提交到集群中運行。除了任務的提交和運行之外,運行時還包含資源管理器Resource-Manager以及負責接收和執行Task的TaskManager,這些服務各司其職,相互合作。運行時提供了不同類型(有界和無界)作業的執行和調度功能,最終將任務拆解成Task執行和調度。同時,運行時兼容了不同類型的集群資源管理器,可以提供不同的部署方式,并統一管理Slot計算資源。

3、物理部署層

物理部署層的主要功能是兼容不同的資源管理器,如支持集群部署模式的Hadoop YARN、Kubernetes及Standalone等。這些資源管理器能夠為在Flink運行時上運行的作業提供Slot計算資源。第4章會重點介紹Flink物理部署層的實現,幫助大家了解如何將運行時運行在不同的資源管理器上并對資源管理器提供的計算資源進行有效管理。

二Flink集群架構

如圖3所示,Flink集群主要包含3部分:JobManager、TaskManager和客戶端,三者均為獨立的JVM進程。Flink集群啟動后,會至少啟動一個JobManager和多個Task-Manager。客戶端將任務提交到JobManager,JobManager再將任務拆分成Task并調度到各個TaskManager中執行,最后TaskManager將Task執行的情況匯報給JobManager。

圖3 Flink集群架構圖

客戶端是Flink專門用于提交任務的客戶端實現,可以運行在任何設備上,并且兼容Windows、macOS、Linux等操作系統,只需要運行環境與JobManager之間保持網絡暢通即可。用戶可以通過./bin/f?link run命令或Scala Shell交互式命令行提交作業。客戶端會在內部運行提交的作業,然后基于作業的代碼邏輯構建JobGraph結構,最終將JobGraph提交到運行時中運行。JobGraph是客戶端和集群運行時之間約定的統一抽象數據結構,也就是說,不管是什么類型的作業,都會通過客戶端將提交的應用程序構建成JobGraph結構,最后提交到集群上運行。

JobManager是整個集群的管理節點,負責接收和執行來自客戶端提交的JobGraph。JobManager也會負責整個任務的Checkpoint協調工作,內部負責協調和調度提交的任務,并將JobGraph轉換為ExecutionGraph結構,然后通過調度器調度并執行ExecutionGraph的節點。ExecutionGraph中的ExecutionVertex節點會以Task的形式在TaskManager中執行。

除了對Job的調度和管理之外,JobManager會對整個集群的計算資源進行統一管理,所有TaskManager的計算資源都會注冊到JobManager節點中,然后分配給不同的任務使用。當然,JobManager還具備非常多的功能,例如Checkpoint的觸發和協調等。

TaskManager作為整個集群的工作節點,主要作用是向集群提供計算資源,每個TaskManager都包含一定數量的內存、CPU等計算資源。這些計算資源會被封裝成Slot資源卡槽,然后通過主節點中的ResourceManager組件進行統一協調和管理,而任務中并行的Task會被分配到Slot計算資源中。

根據底層集群資源管理器的不同,TaskManager的啟動方式及資源管理形式也會有所不同。例如,在基于Standalone模式的集群中,所有的TaskManager都是按照固定數量啟動的;而YARN、Kubernetes等資源管理器上創建的Flink集群則支持按需動態啟動TaskManager節點。

三核心概念

1、有狀態計算

在Flink架構體系中,有狀態計算是非常重要的特性之一。如圖4所示,有狀態計算是指在程序計算過程中,程序內部存儲計算產生的中間結果,并將其提供給后續的算子進行計算。狀態數據可以存儲在本地內存中,也可以存儲在第三方存儲介質中,例如Flink已經實現的RocksDB。

圖4 有狀態處理和無狀態處理

和有狀態計算不同,無狀態計算不會存儲計算過程中產生的結果,也不會將結果用于下一步計算。程序只會在當前的計算流程中執行,計算完成就輸出結果,然后接入下一條數據,繼續處理。

無狀態計算實現的復雜度相對較低,實現起來也比較容易,但是無法應對比較復雜的業務場景,例如處理實時CEP問題,按分鐘、小時、天進行聚合計算,求取最大值、均值等聚合指標等。如果不借助Flink內部提供的狀態存儲,一般都需要通過外部數據存儲介質,常見的有Redis等鍵值存儲系統,才能完成復雜指標的計算。

和Storm等流處理框架不同,Flink支持有狀態計算,可以應對更加復雜的數據計算場景。

2、時間概念與水位線機制

在DataFlow模型中,時間會被分為事件時間和處理時間兩種類型。如圖5所示,Flink中的時間概念基本和DataFlow模型一致,且Flink在以上兩種時間概念的基礎上增加了進入時間(ingestion time)的概念,也就是數據接入到Flink系統時由源節點產生的時間。

圖5 Flink時間概念

事件時間指的是每個事件在其生產設備上發生的時間。通常在進入Flink之前,事件時間就已經嵌入數據記錄,后續計算從每條記錄中提取該時間。基于事件時間,我們可以通過水位線對亂序事件進行處理。事件時間能夠準確地反映事件發生的先后關系,這對流處理系統而言是非常重要的。在涉及較多的網絡傳輸時,在傳輸過程中不可避免地會發生數據發送順序改變,最終導致流系統統計結果出現偏差,從而很難通過實時計算的方式得到正確的統計結果。

處理時間是指執行相應算子操作的機器系統時間。當應用基于處理時間運行時,所有基于時間的算子操作(如時間窗口)將使用運行相應算子機器的系統時鐘。例如,應用程序在上午9:15運行,則第一個每小時處理時間窗口包括在上午9:15到上午10:00之間處理的事件,下一個窗口包括在上午10:00到11:00之間處理的事件。

處理時間是最簡單的時間概念,不需要在流和機器之間進行協調,它提供了最佳的性能和最低的延遲。但在分布式和異步環境中,處理時間不能提供確定性,因為它容易受到記錄到達系統的速度(例如從消息隊列到達系統)以及系統內算子之間流動速度的影響。

接入時間是指數據接入Flink系統的時間,它由SourceOperator自動根據當前時鐘生成。后面所有與時間相關的Operator算子都能夠基于接入時間完成窗口統計等操作。接入時間的使用頻率并不高,當接入的事件不具有事件時間時,可以借助接入時間來處理數據。

相比于處理時間,接入時間的實現成本較高,但是它的數據只產生一次,且不同窗口操作可以基于統一的時間戳,這可以在一定程度上避免處理時間過度依賴處理算子的時鐘的問題。

不同于事件時間,接入時間不能完全刻畫出事件產生的先后關系。在Flink內部,接入時間只是像事件時間一樣對待和處理,會自動分配時間戳和生成水位線。因此,基于接入時間并不能完全處理亂序時間和遲到事件。

 

本文摘編于《Flink設計與實現:核心原理與源碼解析》,經出版方授權發布。

 

責任編輯:武曉燕 來源: 數倉寶貝庫
相關推薦

2009-06-24 14:25:13

JSF整體架構

2016-11-04 21:46:46

UnderscoreJavascript

2016-11-25 13:14:50

Flume架構源碼

2010-08-03 14:58:38

APC

2010-09-27 16:23:28

APC

2025-07-08 08:57:29

2017-04-14 15:42:14

2016-10-09 14:48:14

Linux整體架構跳板機

2023-06-09 14:01:00

架構程序APP

2024-01-29 08:07:42

FlinkYARN架構

2022-11-29 11:21:20

單體分層應用架構

2017-12-12 14:26:16

數據庫PostgreSQL邏輯優化

2024-08-26 10:31:23

2025-06-09 07:45:00

2012-07-10 16:22:01

開源架構

2010-02-06 15:32:30

Android架構

2009-12-07 18:43:29

WCF框架

2024-03-12 12:57:07

Redis主從架構

2010-03-03 13:56:24

2017-07-05 17:47:17

架構DockerContainer
點贊
收藏

51CTO技術棧公眾號

四虎在线精品| 天天摸夜夜添狠狠添婷婷| 日本久久黄色| 日韩精品一区二区三区四区| 欧美国产日韩激情| 国产在线视频网| 国产精品一区二区在线播放| 91高清视频免费观看| 精品熟妇无码av免费久久| 一区二区三区在线免费看| 高潮白浆女日韩av免费看| 一区二区不卡在线| 天天干天天插天天操| 国产最新精品免费| 日本人成精品视频在线| 欧美毛片在线观看| av中文字幕一区二区| 精品日韩欧美在线| 9久久婷婷国产综合精品性色| 欧美6一10sex性hd| 中日韩av电影| 精品一区二区三区国产| 精品人妻少妇嫩草av无码专区 | 国产91丝袜在线播放| 日韩av电影在线播放| 欧美另类视频在线观看| 久久网站免费观看| 亚洲欧美国产精品| 久久福利小视频| 精品三级国产| 欧美久久免费观看| 亚洲 中文字幕 日韩 无码| 92久久精品| 一区二区日韩av| 一区二区三区四区欧美| 免费a在线观看| 99国产精品国产精品毛片| 不卡视频一区二区| 91 中文字幕| 日本美女一区二区三区视频| 8x拔播拔播x8国产精品| 日韩精品在线不卡| 亚洲网站在线| 久久久久久午夜| 国产精品三区在线观看| 99精品综合| 色噜噜国产精品视频一区二区| 免费看污黄网站在线观看| 九九热hot精品视频在线播放| 在线成人免费观看| 女同激情久久av久久| 国产综合色激情| 欧美婷婷六月丁香综合色| 国产裸体免费无遮挡| 婷婷激情一区| 欧美探花视频资源| 亚洲一区日韩精品| 99精品女人在线观看免费视频| 欧美日韩国产高清一区二区三区| 日本www.色| 伦一区二区三区中文字幕v亚洲| 欧美综合亚洲图片综合区| 成年人在线观看视频免费| 欧美123区| 欧美日韩国产一区二区三区地区| 手机在线看福利| 99国内精品久久久久| 欧美一二三四区在线| 岛国精品一区二区三区| 免费看久久久| 亚洲精品一区av在线播放| 亚洲黄色免费视频| 午夜激情久久| 另类视频在线观看| 日本亚洲欧美在线| 久久一区激情| 91精品久久久久久久久久另类| 国产精品视频一二区| 国产成人欧美日韩在线电影| 激情五月综合色婷婷一区二区 | 久久久精品日韩欧美| 麻豆av福利av久久av| 韩日视频在线| 亚洲女人****多毛耸耸8| 国产真人做爰毛片视频直播| 色在线视频观看| 欧美高清www午色夜在线视频| 欧美体内she精高潮| 日韩精品免费一区二区三区竹菊| 国产亚洲人成a一在线v站| 中国毛片直接看| 一本综合久久| 成人黄色午夜影院| 天堂av资源在线| 国产精品水嫩水嫩| 日本福利视频一区| 国产精品第一| 亚洲电影免费观看高清完整版在线观看| 免费在线观看成年人视频| 欧美激情成人| 5566日本婷婷色中文字幕97| 亚洲综合精品视频| 99re在线精品| 一二三四中文字幕| 国产综合av| 欧美va亚洲va国产综合| 一级黄色片网址| 精品福利电影| 51精品国产人成在线观看| 香蕉视频国产在线| 亚洲精品亚洲人成人网在线播放| 欧美 国产 日本| 一区二区三区四区高清视频 | 制服.丝袜.亚洲.中文.综合| 白嫩情侣偷拍呻吟刺激| 97精品在线| 国产va免费精品高清在线观看| 99国产精品一区二区三区| 国产无遮挡一区二区三区毛片日本| 精品免费久久久久久久| 黄色精品视频| 亚洲免费视频网站| 国产一国产二国产三| 免费不卡在线视频| 欧美一级片免费观看| av男人的天堂在线观看| 日韩欧美一区在线| 一起操在线播放| 日韩综合在线视频| 欧美激情国产日韩| 成人影院在线视频| 精品国产区一区| 国产av 一区二区三区| 精品一区二区三区影院在线午夜| 欧美日韩国产综合视频在线| а√在线天堂官网| 亚洲国产精品高清久久久| 激情五月婷婷小说| 国产精品香蕉一区二区三区| 一区二区三区一级片| 丁香久久综合| 日韩中文娱乐网| 国产精品第6页| 国产偷v国产偷v亚洲高清| 成人一级片网站| 亚洲小说图片视频| 欧美一级片免费在线| 无码精品视频一区二区三区| 亚洲r级在线视频| 国产人妻黑人一区二区三区| 亚洲第一黄网| 国内精品久久久久久久果冻传媒| 91福利在线尤物| 亚洲成人精品在线| 欧美日韩综合在线观看| ww亚洲ww在线观看国产| 哪个网站能看毛片| 久久不见久久见免费视频7| 国产va免费精品高清在线| 番号集在线观看| 欧美日韩国产片| 熟女少妇a性色生活片毛片| 激情文学综合插| 在线观看三级网站| 国产香蕉精品| 日产日韩在线亚洲欧美| 国产私人尤物无码不卡| 欧美日韩一区二区三区不卡| 成人性生活毛片| 岛国一区二区在线观看| 国产在线观看福利| 日韩伦理一区| 91视频99| 牛牛精品一区二区| 自拍偷拍亚洲在线| 国产熟女精品视频| 亚洲.国产.中文慕字在线| 国产精品jizz| 精品亚洲成a人| 妞干网在线视频观看| 国产成人调教视频在线观看| 91精品国产综合久久香蕉的用户体验| 国产成人l区| 日韩毛片在线看| 国产原创中文av| 欧美日韩国产精品| 婷婷丁香综合网| 成人午夜电影小说| 国产成人手机视频| 国内激情久久| 亚洲黄色成人久久久| 成人免费直播在线| 国产精品久久久久av| 免费影视亚洲| 一本一本久久a久久精品牛牛影视| 99久久精品国产成人一区二区| 亚洲综合久久av| 女人十八毛片嫩草av| 懂色一区二区三区免费观看 | 无人区在线高清完整免费版 一区二| 色午夜这里只有精品| 手机在线精品视频| 欧美日本精品一区二区三区| 国产乱码久久久久久| 国产精品国产自产拍高清av| 日韩aaaaa| 国产乱国产乱300精品| 国产无套粉嫩白浆内谢的出处| 欧美日韩视频| 亚洲精品成人久久久998| 人妖一区二区三区| 999视频在线观看| 韩国精品视频在线观看| 欧美亚洲视频在线看网址| 手机在线免费看av| 日韩一级黄色av| 国外av在线| 不卡的av在线| 日韩激情av在线播放| 自拍偷拍18p| 婷婷中文字幕综合| 欧美黄色一区二区三区| 国产精品卡一卡二卡三| 国产在线观看h| 99精品视频在线播放观看| 台湾佬美性中文| 国内精品在线播放| 9l视频白拍9色9l视频| 美女视频一区免费观看| 欧美久久久久久久久久久久久| 中文精品久久| 欧美日韩一级在线 | 亚洲一区三区| 国产成人精品免费视| 久久综合一区二区三区| 欧美a级网站| 精品欧美国产| 精品资源在线| 国新精品乱码一区二区三区18| 日韩一二三区在线观看| 亚洲自拍偷拍在线| 不卡精品视频| 亚洲japanese制服美女| 99久久久国产| 91久久久久久久久| 精品一区二区三区中文字幕| 成人黄色av网| 国产高清亚洲| 91入口在线观看| 岛国成人av| 国产精品一 二 三| 欧美一级二级三级视频| 美女黄毛**国产精品啪啪| 国产传媒欧美日韩成人精品大片| 欧美日韩电影一区二区| 国产精品三级| 一级二级三级欧美| 欧美aⅴ99久久黑人专区| 中文字幕人妻熟女人妻洋洋| 国语精品一区| 国产精品无码一区二区在线| 午夜在线精品| xx欧美撒尿嘘撒尿xx| 极品少妇一区二区| 中文字幕一二三区| 成人精品一区二区三区四区 | 欧美国产禁国产网站cc| 国产一二三av| 亚洲免费观看高清完整| 国产精品视频一区二区三| 亚洲在线中文字幕| 国产精品视频一区在线观看| 欧美三级午夜理伦三级中视频| 一本到在线视频| 日韩欧美不卡在线观看视频| 神马午夜电影一区二区三区在线观看| 亚洲国产精品福利| 在线观看h片| 久久久久久久成人| 欧美黑人疯狂性受xxxxx野外| 国产精品日韩一区| 伊人久久影院| 日本中文不卡| 欧美1区2区3区| 91精品91久久久中77777老牛| 奇米色777欧美一区二区| 日本人dh亚洲人ⅹxx| 91在线小视频| 精品国产视频在线观看| 疯狂做受xxxx欧美肥白少妇| 在线观看黄色国产| 亚洲精品美女久久久久| 男人在线资源站| 97人洗澡人人免费公开视频碰碰碰| 日本欧美不卡| 国内成+人亚洲| 欧美激情电影| 免费无码国产v片在线观看| 精品在线播放午夜| 国产精品无码午夜福利| 亚洲精品视频在线看| 中文字幕精品无| 日韩精品一区二区在线| seseavlu视频在线| 2020久久国产精品| 日韩精品一区二区三区中文 | 久热国产在线| 2024亚洲男人天堂| 一区二区三区国产好| 亚洲亚洲精品三区日韩精品在线视频| 狠狠入ady亚洲精品| 欧美精品久久久久久久久25p| 99久久亚洲一区二区三区青草| 成人三级视频在线观看| 色美美综合视频| 特黄aaaaaaaaa真人毛片| 久热99视频在线观看| 欧美不卡高清一区二区三区| 久久波多野结衣| 午夜国产一区| 手机版av在线| 国产免费成人在线视频| 91国产丝袜播放在线| 日韩精品中午字幕| 日p在线观看| 国产精品国产自产拍高清av水多| 欧美黄色影院| 国产成人在线小视频| 国产精品香蕉一区二区三区| 久草福利资源在线| 欧美亚洲一区三区| 九色在线播放| 青草青草久热精品视频在线观看| 第一区第二区在线| 日韩精品视频无播放器在线看 | 成人两性免费视频| 欧美色图一区| 亚洲男人天堂色| 久久免费电影网| www.国产色| 日韩电影中文字幕在线| 久草在线资源福利站| 国产在线一区二区三区欧美| 日韩午夜免费视频| 亚洲av人人澡人人爽人人夜夜| 一区二区视频免费在线观看| a级片在线视频| 欧美精品在线免费| 伊人久久亚洲| 欧美大片在线播放| 97久久超碰国产精品| 日韩 欧美 精品| 日韩av在线网址| 欧美成人影院| 亚洲成人自拍视频| 久久91精品国产91久久小草| av最新在线观看| 日韩欧美国产系列| 超碰在线中文字幕| 好看的日韩精品视频在线| 性一交一乱一区二区洋洋av| 法国伦理少妇愉情| 欧美在线高清视频| www.在线视频| 国产一区二区精品免费| 久久久久久夜| 久久久久麻豆v国产| 欧美本精品男人aⅴ天堂| 精品人人视频| 日本一区二区三区免费看| 久久er99热精品一区二区| 青青草原在线免费观看视频| 亚洲精品videossex少妇| 国产精品亚洲d| 精品日韩在线播放| 成人av影院在线| 69xxxx国产| 久久国产精品网站| 欧美一级全黄| 久久6免费视频| 午夜精品视频一区| 成人精品一区二区三区免费 | 亚洲国产综合网| 欧美一级视频一区二区| 日韩欧美一区免费| 国产艳妇疯狂做爰视频| 日本高清不卡在线观看| 成人短视频在线观看| 精品久久久久久一区二区里番| 视频一区二区中文字幕| avtt天堂在线| 亚洲男人天堂网| 日韩一区网站| 国产成人无码一二三区视频| 亚洲免费av高清| 国产一级二级三级在线观看| 99久久精品免费看国产四区| 久久只有精品| 国产精品成人网站| 久久九九免费视频|