《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第三章 Flink的設(shè)計(jì)與運(yùn)行原理_第1頁
《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第三章 Flink的設(shè)計(jì)與運(yùn)行原理_第2頁
《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第三章 Flink的設(shè)計(jì)與運(yùn)行原理_第3頁
《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第三章 Flink的設(shè)計(jì)與運(yùn)行原理_第4頁
《數(shù)據(jù)實(shí)時(shí)處理flink》課件-第三章 Flink的設(shè)計(jì)與運(yùn)行原理_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Flink的設(shè)計(jì)與運(yùn)行原理本章將以WordCount程序?yàn)橹骶€,介紹Flink的設(shè)計(jì)與運(yùn)行原理,主要內(nèi)容有:Flink的數(shù)據(jù)流圖,F(xiàn)link分布式架構(gòu)與核心組件,任務(wù)執(zhí)行與資源劃分。

本章所涉及的主要內(nèi)容。熟悉Flink的數(shù)據(jù)流圖。掌握Flink分布式架構(gòu)與核心組件。掌握任務(wù)執(zhí)行與資源劃分。數(shù)據(jù)流圖Flink架構(gòu)和核心組件任務(wù)執(zhí)行與資源劃分

相關(guān)概念方法(Method):Java或Scala語言中的方法,有輸入?yún)?shù)和返回值。函數(shù)(Function):Flink提供給開發(fā)者的接口flatMap()、keyBy()等算子(Operator):在執(zhí)行層面,算子對數(shù)據(jù)進(jìn)行操作,一般一到多個(gè)函數(shù)對應(yīng)一個(gè)算子。Source、Transformation和Sink

數(shù)據(jù)流圖從代碼到邏輯視圖邏輯視圖中圓圈表示算子,箭頭表示數(shù)據(jù)流可以在Flink

Web

UI中查看一個(gè)作業(yè)的邏輯視圖大數(shù)據(jù)框架的算子對計(jì)算做了抽象,方便用戶進(jìn)行并行計(jì)算、橫向擴(kuò)展和故障恢復(fù)邏輯視圖

分布式環(huán)境下并行化物理執(zhí)行數(shù)據(jù)流被切分到多個(gè)分區(qū)(Partition)算子被切分為算子子任務(wù)(Operator

Subtask),又被稱為算子實(shí)例物理執(zhí)行的基本單元并行度(Parallelism):衡量并行切分的多少物理執(zhí)行數(shù)據(jù)在不同算子子任務(wù)之間數(shù)據(jù)交換常見四種數(shù)據(jù)交換策略:前向傳播(Forward)按Key分組(Keyed-Based)廣播(Broadcast)隨機(jī)(Random)數(shù)據(jù)交換策略數(shù)據(jù)流圖Flink架構(gòu)和核心組件任務(wù)執(zhí)行與資源劃分Master協(xié)調(diào)管理DispatcherResourceManagerJobManagerTaskManager擁有CPU、內(nèi)存等計(jì)算資源Flink作業(yè)被分發(fā)到多個(gè)TaskManager上并行執(zhí)行主從架構(gòu)啟動一個(gè)Flink集群,TaskManager進(jìn)程啟動后會將自己注冊給Master的ResourceManagerClient提交作業(yè)(Application)Master的Dispatcher接收作業(yè),啟動JobManagerJobManager向ResourceManager申請資源,ResourceManager會將閑置資源分配給JobManager作業(yè)轉(zhuǎn)化為物理執(zhí)行圖,計(jì)算任務(wù)分發(fā)部署到多個(gè)TaskManager上作業(yè)提交過程作業(yè)提交流程ClientFlink主目錄下的bin目錄中的命令行工具將用戶作業(yè)轉(zhuǎn)換為JobGraphDispatcher接收多個(gè)作業(yè),為每個(gè)作業(yè)分配一個(gè)JobManagerJobManager單個(gè)作業(yè)的協(xié)調(diào)者,每個(gè)作業(yè)有一個(gè)JobManager將JobGraph轉(zhuǎn)化為物理執(zhí)行圖ExecutionGraph向ResourceManager申請資源管理TaskManager,將具體計(jì)算任務(wù)分發(fā)部署到多個(gè)TaskManager上Flink核心組件介紹ResourceManager統(tǒng)一處理資源分配上的問題獲取計(jì)算資源、分配給具體計(jì)算作業(yè)TaskManager負(fù)責(zé)具體計(jì)算任務(wù)的執(zhí)行提供一定量的任務(wù)槽位(TaskSlot,簡稱Slot),F(xiàn)link作業(yè)運(yùn)行在這些Slot上Slot會注冊到ResourceManager上,ResourceManager分配這些Slot給具體的作業(yè)部署層Local、Cluster、Cloud運(yùn)行時(shí)層分布式運(yùn)行時(shí)API層流處理-

DataStream

API批處理–

DataSet

API上層工具基于DataStream/DataSet

API的上層工具Flink組件棧數(shù)據(jù)流圖Flink架構(gòu)和核心組件任務(wù)執(zhí)行與資源劃分StreamGraph根據(jù)用戶代碼生成的圖JobGraphStreamGraph優(yōu)化之后生成JobGraph算子鏈ExecutionGraphJobGraph的分布式并行版本物理執(zhí)行圖部署到TaskManager上的具體計(jì)算任務(wù)再談邏輯視圖到物理執(zhí)行圖算子鏈將相近的算子子任務(wù)鏈接在一起鏈接后形成任務(wù)(Task)Task以線程的形式被TaskManager調(diào)度可以降低算子子任務(wù)之間的傳輸開銷任務(wù)、算子子任務(wù)與算子鏈上圖中,Source和FlatMap鏈接到了一起,其他算子發(fā)生了跨分區(qū)數(shù)據(jù)交換,無法鏈接到一起。Task

SlotTaskManager下有多個(gè)Task

Slot每個(gè)Task

Slot中運(yùn)行著某些TaskSlot之間的內(nèi)存相互隔離Slot內(nèi)部共享TCP連接、心跳等允許用戶設(shè)置TaskManager中的Slot的數(shù)目建議將TaskManager下Slot數(shù)設(shè)置為CPU核心數(shù)任務(wù)槽位與計(jì)算資源Slot與TaskManager多個(gè)Task共享一個(gè)Slot數(shù)據(jù)交換成本更低右圖中,Source和FlatMap計(jì)算量不大,WindowAggregation計(jì)算量較大,資源互補(bǔ)增加并行度后,在同樣的計(jì)算資源基礎(chǔ)上,可以部署更多算子實(shí)例,處理的數(shù)據(jù)量更大槽位共享將并行度由2改為6槽位共享后,多個(gè)Task共享一個(gè)Slot可以增大并行度,有限的資源上處理更多數(shù)據(jù)并行度邏輯視圖并行切分為多個(gè)算子子任務(wù)每個(gè)算子子任務(wù)處理輸入數(shù)據(jù)的一部分輸入數(shù)據(jù)量增大時(shí),可適當(dāng)增大并行度槽位數(shù)目針對TaskManager設(shè)置資源切分粒度并行度與槽位數(shù)目本章中,我們以WordCount案例為主線分析了Flink的設(shè)計(jì)和運(yùn)行原理。我們重點(diǎn)介紹了一個(gè)作業(yè)從數(shù)據(jù)流圖到物理執(zhí)行圖的轉(zhuǎn)化過程,并介紹了轉(zhuǎn)化過程中所涉及的數(shù)據(jù)結(jié)構(gòu)。Flink是基于主從架構(gòu)的,我們通過一個(gè)作業(yè)提交的案例,介紹了Flink的核心組件各自的主要功能,包括Client、Disp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論