Flink基本認識

Flink基本架構 詳見圖

Flink系統架構中包含了兩個角色,分別是JobManager和TaskManager,是一個典型的Master-Slave架構。JobManager至關因而Master,TaskManager至關因而Slave
flink-角色架構.pngweb

官方
flink基本框架.pngsession

JobManager(JVM進程) 詳見圖

JobManager負責整個集羣的資源管理與任務管理,在一個集羣中只能由一個正在工做(active)的 JobManager,若是HA集羣,那麼其餘JobManager必定是standby狀態架構

TaskManager(JVM進程)

負責當前節點上的任務運行及當前節點上的資源管理,TaskManager資源經過TaskSlot進行了劃 分,每一個TaskSlot表明的是一份固定資源。例如,具備三個 slots 的 TaskManager 會將其管理的 內存資源分紅三等份給每一個 slot。 劃分資源意味着 subtask 之間不會競爭內存資源,可是也意味 着它們只擁有固定的資源。注意這裏並無 CPU 隔離,當前 slots 之間只是劃分任務的內存資源
負責TaskManager之間的數據交換app

Flink任務調度規則

  1. 不一樣Task下的subtask分到同一個TaskSlot,提升數據傳輸效率
  2. 相同Task下的subtask不會分到同一個TaskSlot,充分利用集羣資源

client客戶端

負責將當前的任務提交給JobManager,提交任務的經常使用方式:命令提交、web頁面提交。獲取任務的 執行信息框架

Flink on Yarn 詳見圖

Flink on Yarn是依託Yarn資源管理器,如今不少分佈式任務均可以支持基於Yarn運行,這是在企業中使 用最多的方式。Why?
(1)基於Yarn的運行模式能夠充分使用集羣資源,Spark on Yarn、MapReduce on Yarn、Flink on Yarn等 多套計算框架均可以基於Yarn運行,充分利用集羣資源
(2)基於Yarn的運行模式下降維護成本分佈式

flink-on-yarn.png

Flink on Yarn兩種運行模式

1.yarn-session模式(用得多)

  • 適用於大量的小做業
  • 須要手動申請yarn資源
  • yarn資源不可以自動關閉,須要手動關閉
  • 一次性申請好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進程

2.yarn-cluster模式

  • 適用於大做業
  • 適用於一次性做業
  • 任務執行完畢以後,可以自動關閉資源
  • 申請資源和關閉資源,一條命令就能夠

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

Flink on YARN HA集羣

不管以什麼樣的模式提交Application到Yarn中運行,都會啓動一個yarn-session(Flink 集羣),依然是由 JobManager和TaskManager組成,那麼JobManager節點若是宕機,那麼整個Flink集羣就不會正常運轉

相關文章
相關標籤/搜索