[Flink]Flink章1 Flink架構淺析

1、簡介網絡

Flink 運行時架構主要包含幾個部分:Client、JobManager(master節點)和TaskManger(slave節點)。架構

 

 


 2、分工框架

Client:Flink 做業在哪臺機器上面提交,那麼當前機器稱之爲Client。用戶開發的Program 代碼,它會構建出DataFlow graph,而後經過Client提交給JobManager。

JobManager:是主(master)節點,至關於YARN裏面的REsourceManager,生成環境中通常能夠作HA 高可用。JobManager會將任務進行拆分,調度到TaskManager上面執行。spa

TaskManager:是從節點(slave),TaskManager纔是真正實現task的部分。blog

Client提交做業到JobManager,就須要跟JobManager進行通訊,它使用Akka框架或者庫進行通訊,另外Client與JobManager進行數據交互,使用的是Netty框架。Akka通訊基於Actor System,Client能夠向JobManager發送指令,好比Submit job或者Cancel /update job。JobManager也能夠反饋信息給Client,好比status updates,Statistics和results。開發

Client提交給JobManager的是一個Job,而後JobManager將Job拆分紅task,提交給TaskManager(worker)。JobManager與TaskManager也是基於Akka進行通訊,JobManager發送指令,好比Deploy/Stop/Cancel Tasks或者觸發Checkpoint,反過來TaskManager也會跟JobManager通訊返回Task Status,Heartbeat(心跳),Statistics等。另外TaskManager之間的數據經過網絡進行傳輸,好比Data Stream作一些算子的操做,數據每每須要在TaskManager之間作數據傳輸。it

當Flink系統啓動時,首先啓動JobManager和一至多個TaskManager。JobManager負責協調Flink系統,TaskManager則是執行並行程序的worker。當系統以本地形式啓動時,一個JobManager和一個TaskManager會啓動在同一個JVM中。當一個程序被提交後,系統會建立一個Client來進行預處理,將程序轉變成一個並行數據流的形式,交給JobManager和TaskManager執行。ast

相關文章
相關標籤/搜索