Flink系統架構中包含了兩個角色,分別是JobManager和TaskManager,是一個典型的Master-Slave架構。JobManager至關因而Master,TaskManager至關因而Slaveweb
官方session
JobManager負責整個集羣的資源管理與任務管理,在一個集羣中只能由一個正在工做(active)的 JobManager,若是HA集羣,那麼其餘JobManager必定是standby狀態架構
負責當前節點上的任務運行及當前節點上的資源管理,TaskManager資源經過TaskSlot進行了劃 分,每一個TaskSlot表明的是一份固定資源。例如,具備三個 slots 的 TaskManager 會將其管理的 內存資源分紅三等份給每一個 slot。 劃分資源意味着 subtask 之間不會競爭內存資源,可是也意味 着它們只擁有固定的資源。注意這裏並無 CPU 隔離,當前 slots 之間只是劃分任務的內存資源
負責TaskManager之間的數據交換app
負責將當前的任務提交給JobManager,提交任務的經常使用方式:命令提交、web頁面提交。獲取任務的 執行信息框架
Flink on Yarn是依託Yarn資源管理器,如今不少分佈式任務均可以支持基於Yarn運行,這是在企業中使 用最多的方式。Why?
(1)基於Yarn的運行模式能夠充分使用集羣資源,Spark on Yarn、MapReduce on Yarn、Flink on Yarn等 多套計算框架均可以基於Yarn運行,充分利用集羣資源
(2)基於Yarn的運行模式下降維護成本分佈式
申請yarn資源
yarn-session.sh -n 2 -tm 1024 -jm 1024 -s 2 -dspa
-n : taskmanager的容器的數量
-tm : taskmanager的申請內存
-jm: jobmanager的申請內存
-s : taskmanager的cpu核數
-d:分離模式,申請好yarn資源,會自動跳出會話窗口
提交做業:
flink run ../examples/batch/WordCount.jarserver
關閉資源:
yarn application -kill IDblog
查看yarn session列表: yarn application -list
-help命令:
yarn-session.sh -help進程
flink run -m yarn-cluster -yn 1 -ytm 1024 -yjm 1024 -ys 1 /export/servers/flink-1.7.0/examples/batch/WordCount.jar
-m : 指定模式
-yn: taskmanager的容器的數量
-yjm: jobmanager的申請內存
-ytm: taskmanager的申請內存
-ys: taskmanager的cpu核數-help命令:
flink run -m yarn-cluster -help
不管以什麼樣的模式提交Application到Yarn中運行,都會啓動一個yarn-session(Flink 集羣),依然是由 JobManager和TaskManager組成,那麼JobManager節點若是宕機,那麼整個Flink集羣就不會正常運轉