一、作業管理器(jobmanager)
1、控制乙個應用程式執行的主程序,每個應用程式都會被乙個不同的jobmanager所控制。
2、jobmanager會先接收到應用程式,應用程式包括:作業圖(jobgraph)、邏輯資料流圖和打包的所有類庫和其他資源的jar包。
3、jobmanager會把jobgraph轉換成乙個物理層面的資料流圖,這個圖被叫做「執行圖」(executiongraph),包含了所有可以併發執行的任務。
4、jobmanager會向資源管理器(resourcemanager)請求執行任務必要的資源,也就是任務管理器上的slot。一旦獲取到足夠的資源,就會將執行圖分發到真正執行的taskmanager上。
二、任務管理器(taskmanager)
flink中的工作程序。
1、每乙個taskmanager都包含了一定數量的插槽(slots)。插槽的數量限制了taskmanager能夠執行的任務數量。
2、啟動後,taskmanager回向資源管理器註冊它的插槽,收到資源管理器的指令後,taskmanager就會將乙個或者多個插槽提供給jobmanager呼叫。jobmanager就可以向插槽分配任務(tasks)來執行了。
3、在執行過程中,乙個taskmanager可以跟其他執行同乙個應用程式的taskmanager交換資料。
三、資源管理器(resourcemanager)
1、負責管理任務管理器(taskmanager)的插槽(slot),taskmanager插槽是flink中定義的處理資源單元。
2、flink為不同的環境和資源管理工具提供了不同的資源管理器,比如yarn,mesos,k8s
3、當jobmanager申請插槽資源時,resourcemanager會將有空閒的插槽的taskmanager分配給jobmanager。如果resourcemanager沒有足夠的插槽來滿足jobmanager的請求,它還可以向資源提供平台發起會話,提供啟動taskmanager程序的容器。
四、分發器(dispatcher)
1、可以跨作業執行,它為應用提交提供了rest介面。
2、當乙個應用被提交執行時,分發器就會啟動並將應用移交給乙個jobmanager。
3、dispatcher也會啟動乙個web ui,用來方便展示和監控作業的執行資訊。
4、dispatcher在架構中可能並不是必須的,這取決於應用提交執行的方式。
Flink的執行時架構
每乙個flink應用程式都對應乙個jobmanager,jobmanager是乙個控制程式執行的主程序,我們提交的job就是提交給jobmanager 1.接受需要執行的flink應用程式,這個程式包括作業圖 jobmanager 邏輯資料流圖 logic data flow 和打包的類 庫以及其他...
CUDA學習之六(裝置執行時元件)
裝置執行時元件僅可用於裝置函式。1.數學函式 裝置執行時元件中存在準確性略低而速度更快的版本 其名稱相同,但帶有乙個 字首 如 sinf x 編譯器有乙個 use fast math 選項,用於強制要求所有函式編譯其準確性略低的版本 如果存在 2.同步函式 void syncthreads 同步塊中...
執行時異常
常見的幾種如下 nullpointerexception 空指標引用異常 classcastexception 型別強制轉換異常。illegalargumentexception 傳遞非法引數異常。arithmeticexception 算術運算異常 arraystoreexception 向陣列中...