flink作业提交流程
文章目錄
- 獨立模式(Standalone)
- YARN 集群
- 1. 會話(Session)模式
- 單作業(Per-Job)模式
- 應用(Application)模式
(1) 一般情況下,由客戶端(App)通過分發器提供的 REST 接口,將作業提交給JobManager。
(2)由分發器啟動 JobMaster,并將作業(包含 JobGraph)提交給 JobMaster。
(3)JobMaster 將 JobGraph 解析為可執行的 ExecutionGraph,得到所需的資源數量,然后向資源管理器請求資源(slots)。
(4)資源管理器判斷當前是否由足夠的可用資源;如果沒有,啟動新的 TaskManager。
(5)TaskManager 啟動之后,向 ResourceManager 注冊自己的可用任務槽(slots)。
(6) 資源管理器通知task manager為新的作業提供slots
(7)TaskManager 連接到對應的 JobMaster,提供 slots。
(8)JobMaster 將需要執行的任務分發給 TaskManager。
(9)TaskManager 執行任務,互相之間可以交換數據。
不同的部署環境下可能有不同的提交流程
獨立模式(Standalone)
在獨立模式(Standalone)下,只有會話模式和應用模式兩種部署方式。兩者整體來看流
程是非常相似的:TaskManager 都需要手動啟動,所以當 ResourceManager 收到 JobMaster 的
請求時,會直接要求 TaskManager 提供資源。而 JobMaster 的啟動時間點,會話模式是預先啟
動,應用模式則是在作業提交時啟動。
YARN 集群
1. 會話(Session)模式
會話模式下,先啟動一個Yarn session ,這個會話會創建一個flink 集群
這里只啟動了 JobManager,而 TaskManager 可以根據需要動態地啟動。在 JobManager 內
部,由于還沒有提交作業,所以只有 ResourceManager 和 Dispatcher 在運行,
(1)客戶端通過 REST 接口,將作業提交給分發器。
(2)分發器啟動 JobMaster,并將作業(包含 JobGraph)提交給 JobMaster。
(3)JobMaster 向資源管理器請求資源(slots)。
(4)資源管理器向 YARN 的資源管理器請求 container 資源。
(5)YARN 啟動新的 TaskManager 容器。
(6)TaskManager 啟動之后,向 Flink 的資源管理器注冊自己的可用任務槽。
(7)資源管理器通知 TaskManager 為新的作業提供 slots。
(8)TaskManager 連接到對應的 JobMaster,提供 slots。
(9)JobMaster 將需要執行的任務分發給 TaskManager,執行任務。
單作業(Per-Job)模式
Flink 集群不會預先啟動,而是在提交作業時,才啟動新的 JobManager。
(1)客戶端將作業提交給 YARN 的資源管理器,這一步中會同時將 Flink 的 Jar 包和配置上傳到 HDFS,以便后續啟動 Flink 相關組件的容器
(2)YARN 的資源管理器分配 Container 資源,啟動 Flink JobManager,并將作業提交給JobMaster
(3)JobMaster 向資源管理器請求資源(slots)。
(4)資源管理器向 YARN 的資源管理器請求 container 資源。
(5)YARN 啟動新的 TaskManager 容器。
(6)TaskManager 啟動之后,向 Flink 的資源管理器注冊自己的可用任務槽。
(7)資源管理器通知 TaskManager 為新的作業提供 slots。
(8)TaskManager 連接到對應的 JobMaster,提供 slots。
(9)JobMaster 將需要執行的任務分發給 TaskManager,執行任務。
區別只在于 JobManager 的啟動方式,以及省去了分發器。當第 2 步作業提交給JobMaster,之后的流程就與會話模式完全一樣了。
應用(Application)模式
應用模式與單作業模式的提交流程非常相似,只是初始提交給 YARN 資源管理器的不再,是具體的作業,而是整個應用。一個應用中可能包含了多個作業,這些作業都將在 Flink 集群中啟動各自對應的 JobMaster。
總結
以上是生活随笔為你收集整理的flink作业提交流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 通知栏Notificat
- 下一篇: Linux - send 出现 Reso