這里只介紹Standalone模式
Client
flink官方支持多種模式standalone/yarn/mesos
flink在啟動的時候,會根據參數去執(zhí)行相應的邏輯。而這些邏輯都在CliFrontEnd這個類中。

而flink是如何選擇使用哪種模式呢?首先CliFrontEnd在初始化的時候,有一個靜態(tài)塊

這個靜態(tài)塊在custormCommandLine加入了兩個Cli,分別是yarn和default。在執(zhí)行run命令的時候,客戶端會選擇對應的Cli

而這個選擇的邏輯,是通過遍歷custormCommandLine,分別執(zhí)行對應元素的isActive方法來實現(xiàn)的

JobManager
jobManager的啟動是通過flink-daemo的腳本執(zhí)行的。這個腳本里直接調用JobManager.scala這個class。啟動JobManager就在對應的main方法中

TaskManager和JobManager是相似的,都是通過flink-daemon的腳本設置對應要執(zhí)行的class,進而初始化TaskManager.scala
