精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

免费在线视频一区| 激情小说亚洲图片| 亚洲美女一区二区三区| 懂色av一区二区三区在线播放| 久久久久久久伊人| 国产欧美高清视频在线| 日韩一区二区三区高清免费看看 | 国产一区二区三区成人| 大地资源网3页在线观看| 国产精品一区二区你懂的| 98精品在线视频| 91免费在线看片| 精品亚洲自拍| 欧美一级二级在线观看| 国产成人无码一二三区视频| 黄色网在线播放| 久久伊99综合婷婷久久伊| 国产日韩专区在线| 高清乱码免费看污| 在线成人www免费观看视频| 国产一区二区免费| 国产美女视频免费观看下载软件| 国产精品久久亚洲不卡| 懂色av影视一区二区三区| 在线免费观看一区二区三区| 久久精品色图| 成人精品视频一区| 91久久久国产精品| 色老头在线视频| 亚洲一区激情| 另类天堂av| 精品国产一区二区在线观看| 欧美色欧美亚洲另类七区| 中文字幕免费播放| 亚洲一区日韩在线| 91国产中文字幕| 国产一级在线播放| 韩国久久久久| 欧美美女操人视频| 欧美色图一区二区| 自拍日韩欧美| 欧美精品手机在线| 免费在线观看日韩| 亚洲国产精品日韩专区av有中文| 亚洲天堂一区二区三区| 国产精品揄拍100视频| 国产伦精品一区二区三区免费优势| 91精品国产综合久久久蜜臀图片 | 亚洲一区二区三区无吗| www.亚洲男人天堂| 亚洲综合久久av一区二区三区| 欧美日韩精品一区二区视频| 亚洲桃花岛网站| 97在线观看免费视频| 国产免费av一区二区三区| 亚洲欧美日韩网| 乐播av一区二区三区| 精品国产乱码久久久久久蜜坠欲下 | 亚洲欧洲精品天堂一级| 亚洲自拍三区| 成人免费看片| 亚洲一区二区五区| 欧美精品一区二区三区久久| 老牛影视av牛牛影视av| 成人免费视频视频在线观看免费 | 国产成a人亚洲精v品无码| 久久99精品一区二区三区三区| 国产精品色婷婷视频| 九九热最新地址| 国产一区日韩一区| 韩国日本不卡在线| 日本中文字幕第一页| 视频一区二区三区中文字幕| 国产精品美女免费| 国产免费福利视频| 麻豆精品网站| 国产精品美女在线| 国产模特av私拍大尺度| 成人美女在线视频| 欧美日韩大片一区二区三区| av电影在线播放高清免费观看| 1区2区3区精品视频| 免费视频爱爱太爽了| 一区二区电影免费观看| 欧美精品xxxxbbbb| yy1111111| 日韩午夜电影网| 欧美激情网友自拍| 国产精华7777777| 国产乱子轮精品视频| 国产 高清 精品 在线 a| 无码国产精品一区二区色情男同| 久久蜜桃av一区精品变态类天堂| 亚洲欧洲在线一区| 黄色av网址在线免费观看| 亚洲私人黄色宅男| 久久久久人妻精品一区三寸| 亚洲青青久久| 亚洲精品午夜精品| 国产性生活毛片| 成人羞羞动漫| 欧美精品videosex牲欧美| 波多野结衣一区二区在线 | 国产日韩欧美中文在线播放| 狠狠躁日日躁夜夜躁av| 日本一区二区成人| 青娱乐自拍偷拍| 午夜精品久久久久久毛片| 日韩电视剧在线观看免费网站 | 午夜精品久久久久久久99水蜜桃| 不卡的av中文字幕| 一道在线中文一区二区三区| 九九热精品视频| 一区二区视频网站| 91免费看视频| 高清欧美精品xxxxx| 96视频在线观看欧美| 亚洲欧美精品一区| www.av视频在线观看| 国产在线精品一区在线观看麻豆| 欧美三级电影在线播放| 涩涩在线视频| 色综合天天狠狠| 午夜诱惑痒痒网| 成人系列视频| 国产精品白嫩美女在线观看| 亚州男人的天堂| 亚洲一本大道在线| 日本高清免费在线视频| 久久福利影院| 国产精品九九九| 高清中文字幕一区二区三区| 红桃av永久久久| 亚洲自拍偷拍精品| 亚洲性人人天天夜夜摸| 97netav| 牛夜精品久久久久久久99黑人| 欧美日韩一区二区不卡| 添女人荫蒂视频| 在线精品在线| 国产精品精品软件视频| 污污影院在线观看| 欧美一区二区三区免费大片| 免费黄色国产视频| 久久er精品视频| 一区二区三区电影| 日日狠狠久久| 久久亚洲精品视频| 国产精品久久久久久久久毛片 | 日韩电影免费在线观看中文字幕| 国产精彩视频在线观看| 高清成人在线观看| 丰满少妇久久久| 欧美男男freegayvideosroom| 久久久久久中文| 五月婷婷久久久| 日韩欧美在线观看| 妺妺窝人体色WWW精品| 日本在线不卡一区| 国产a级片免费看| 日韩成人18| 97在线免费观看| 色吊丝在线永久观看最新版本| 欧美日韩国产丝袜另类| 亚洲精品国产熟女久久久| 日本特黄久久久高潮| 一区二区精品在线| 伊人精品久久| 97高清免费视频| 高清av在线| 在线综合+亚洲+欧美中文字幕| 精品欧美一区二区久久久久| 国产91精品入口| 啊啊啊一区二区| 不卡视频在线| 亚洲最大福利视频网| 2021中文字幕在线| 香蕉加勒比综合久久| 国产精品三级在线观看无码| 欧美aaa在线| 日韩一二区视频| 私拍精品福利视频在线一区| 国产精品爽爽爽| 欧美韩日亚洲| 亚洲天堂影视av| 亚洲av色香蕉一区二区三区| 天天射综合影视| 欧美特黄一级片| 99re亚洲国产精品| 一级淫片在线观看| 国产精品婷婷| 可以在线看黄的网站| 日韩av网址大全| 91夜夜未满十八勿入爽爽影院| 91超碰在线免费| 色婷婷综合久久久久| 天天操天天射天天舔| 欧美日韩一区二区欧美激情| 亚洲精品www久久久久久| 国产精品免费av| 亚洲av无码一区二区三区观看| 免费看精品久久片| 蜜桃传媒一区二区三区| 手机在线一区二区三区| 久久久久久99| av综合网站| 91精品国产自产在线老师啪| 成人欧美一区二区三区的电影| 欧美成人午夜激情视频| 国产女人在线观看| 亚洲黄色免费三级| 国产黄a三级三级三级| 91国偷自产一区二区开放时间 | 欧美精品一区二区三区蜜桃视频| 亚洲自拍偷拍另类| 欧美性xxxx极品高清hd直播| 精品少妇theporn| 国产成人精品aa毛片| 噼里啪啦国语在线观看免费版高清版| 欧美日韩网址| 最近看过的日韩成人| av亚洲免费| 欧美成人在线免费观看| 欧美黑人粗大| 97婷婷涩涩精品一区| 日本动漫理论片在线观看网站| 在线不卡国产精品| 精品久久久久一区二区三区| 日韩精品高清在线| 午夜影院免费视频| 亚洲成年人在线| 黄色av中文字幕| 日韩一区二区麻豆国产| 国产美女www爽爽爽视频| 欧美日韩亚州综合| 亚洲中文字幕在线观看| 欧美日韩精品免费观看视频| 中文字幕人妻丝袜乱一区三区| 一本到不卡免费一区二区| 日韩久久中文字幕| 欧美日韩一区二区三区在线免费观看 | 国产精品二线| 夜夜躁日日躁狠狠久久88av | 超碰91人人草人人干| 欧美高清视频| 久久久国产视频| 在线午夜影院| 欧美精品videossex性护士| 超碰中文在线| 高清一区二区三区日本久| a级大胆欧美人体大胆666| 欧美精品第一页在线播放| 毛片在线导航| 1769国产精品| 国产亚洲一区二区手机在线观看 | 亚洲在线观看免费| 免费黄色在线视频| 久久丝袜美腿综合| 色哟哟精品观看| 国产精品夫妻自拍| 国产盗摄x88av| 午夜欧美2019年伦理| 亚洲熟女综合色一区二区三区| 欧美日韩国产色视频| 日本成人一级片| 欧美日本在线视频| 亚洲第一第二区| 日韩av在线免费| 国产h视频在线观看| 久久成人人人人精品欧| 青草在线视频在线观看| 欧美一区视频在线| 欧美一区二区三区婷婷| 99国产在线视频| 蜜臀久久99精品久久一区二区| 亚洲国产日韩综合一区| 欧美精品综合| 999精品网站| 亚洲一区中文| 五月婷婷丁香综合网| 国产激情视频一区二区三区欧美| 日韩综合第一页| 欧美国产在线观看| 久久精品一区二区三| 一本大道久久a久久综合| 91成人一区二区三区| 欧美tickling挠脚心丨vk| 免费在线观看污视频| 欧美不卡视频一区发布| 亚洲精品**中文毛片| 91久久综合亚洲鲁鲁五月天| 欧美性生活一级片| 亚洲永久一区二区三区在线| 亚洲先锋成人| 孩娇小videos精品| www.亚洲精品| 久久免费精品国产| 日本一区二区三区dvd视频在线| 91杏吧porn蝌蚪| 一本色道a无线码一区v| 国产福利小视频| 在线视频亚洲欧美| 忘忧草在线日韩www影院| 91在线免费观看网站| 国产欧美日韩免费观看| 亚洲中文字幕无码一区二区三区| 天堂影院一区二区| 800av在线播放| 伊人性伊人情综合网| 欧美视频xxxx| 日韩国产精品视频| 肉体视频在线| 成人性生交xxxxx网站| 国产欧美高清视频在线| 国产a级片网站| 国产91丝袜在线18| 日本福利片在线观看| 欧美视频一区在线| 九色在线免费| 日韩美女av在线免费观看| 久久久亚洲欧洲日产| 青草网在线观看| 黄网站免费久久| av片在线免费看| 欧美性受xxxx黑人xyx性爽| 欧美另类自拍| 91精品国产91久久久久久久久| 日韩区欧美区| 日本一本草久p| 韩国成人精品a∨在线观看| 毛片久久久久久| 欧美日韩一级片在线观看| 成人动漫在线播放| 国产精品高潮呻吟久久av无限| 网友自拍一区| 熟妇人妻va精品中文字幕| 久久综合九色综合欧美98| 91蜜桃视频在线观看| 亚洲第一视频网| www在线观看黄色| 国产在线精品一区二区三区| 激情欧美亚洲| 国产精品久久久久久在线观看| 亚洲一区二区三区中文字幕| 精品人妻午夜一区二区三区四区| 欧美另类69精品久久久久9999| 国产精品亚洲四区在线观看| 特色特色大片在线| 国产高清一区日本| 日本三级午夜理伦三级三| 亚洲精品在线免费播放| 麻豆免费在线| 欧美综合77777色婷婷| 奇米精品一区二区三区在线观看 | 欧美综合在线视频观看| 91女神在线观看| 伊人婷婷欧美激情| 四虎免费在线观看| 国产suv精品一区二区| 日韩电影免费网站| а 天堂 在线| 亚洲一区二区三区精品在线| 天天操天天操天天干| 日韩美女视频免费在线观看| 成人免费a**址| 乳色吐息在线观看| 图片区日韩欧美亚洲| 福利片在线看| 91在线看www| 国产欧美不卡| 国产一二三av| 欧美mv日韩mv| 午夜欧美巨大性欧美巨大| 亚洲五月六月| 成人免费视频国产在线观看| www.中文字幕在线观看| 日韩欧美在线影院| 国产极品在线观看| 亚洲人成网站在线观看播放| 国产成人av影院| 欧美一区二区三区网站| 麻豆国产精品va在线观看不卡| 激情小说一区| 国产又黄又猛的视频| 亚洲韩国一区二区三区| yw193.com尤物在线| av在线不卡一区| 水野朝阳av一区二区三区| 1024手机在线视频| 亚洲天堂成人在线| 伊色综合久久之综合久久| 日本新janpanese乱熟| 一区二区三区日韩欧美精品| 黄网站在线观看| 国产精品国产一区二区| 久久91精品国产91久久小草| 天天综合天天干| 欧美日韩xxx| 久久中文亚洲字幕| 人妻丰满熟妇av无码久久洗澡 |