1、WordCount程式例項
2、本地監聽9000埠後測試結果
3、job提交流程
4、local模式執行StreamGraph任務
5、流程分析
flink job提交流程個人理解可以大致分為定義和提交兩個環節:以下以WordCount程式為例進行分析
5.1 定義流程
流程定義包含執行環境構建和演算法流程定義:
5.1.1 執行環境構建
執行環境是整個flink程式執行的上下文,記錄其相關配置,並提供一系列方法,如讀取輸入流等,同時提供execute真正開啟提交計算的入口。
下面具體來看getExecutionEnvironment方法
本地執行時,其實執行的是createStreamExecutionEnvironment方法
繼續往下看發現不斷過載createLocalEnvironment方法,最終new了一個LocalStreamEnvironment物件,並設定其並行度等於當前機器的CPU核心數
至此執行環境構建完畢,返回一個LocalStreamEnvironment物件
5.1.2 演算法流程定義
演算法流程簡單來說通常包含三個部分:定義source、operator和sink,對應到示例程式為socketTextStream、(flatMap、keyBy、sum)和print三部分
首先:socketTextStream其本質是向執行環境中新增了SocketTextStreamFunction作為source
其次:faltMap、keyBy和sum其本質是向執行環境中新增FlatMapFunction、KeySelector和AggregationFunction三種運算元
下面分別為keyBy和sum的關鍵細節
最後:print其本質是向執行環境中新增PrintSinkFunction作為sink
5.2 提交任務
提交任務個人理解又包含client提交作業和Executor提交作業兩部分
5.2.1 第一個環節client根據流程定義提交作業如job提交流程圖所示
這個過程其實又可以可以分為兩部分:生成StreamGraph和executeAsync兩部分:
首先看生成StreamGraph部分,這一部分比較簡單,將執行環境中定義好的流程引數構建出StreamGraph即可,核心細節如下:
executeAsync部分其實就是載入一個PipelineExecutor提交StreamGraph,細節如下:
5.2.2 第二個環節Executor提交作業部分原始碼如下:
本地模式主要包含了以下環節:
1> 由StreamGraph生成JobGraph
2> 建立啟動miniCluster叢集,啟動JobMaster等等
3> 提交任務到JobMaster
flink1.10版local模式提交job流程分析
相關文章
- yarn-per-job提交流程Yarn
- flink1.10版本StreamGraph生成過程分析
- Spark3.0YarnCluster模式任務提交流程原始碼分析SparkYarn模式原始碼
- Mapreduce Job提交流程原始碼和切片原始碼詳解原始碼
- eclipse Java Spark local模式EclipseJavaSpark模式
- 【原始碼分析】XXL-JOB的執行器的註冊流程原始碼
- Flink提交Job的方式以及引數設定
- spark核心(下)——job任務提交原始碼解析Spark原始碼
- hadoop3.1.3 local 模式配置Hadoop模式
- spark-submit提交任務時執行流程(簡單版)SparkMIT
- hadoop window 遠端提交job到叢集並執行Hadoop
- Python程式碼解析: job = next(job for job in jobs if job.job_id == job_id)Python
- xxl-job之實現流程任務編排思路
- git提交程式碼託管平臺流程Git
- Fescar - RM 全域性事務提交回滾流程
- git 常用命令及提交流程Git
- Kubernetes Job Controller 原理和原始碼分析(一)Controller原始碼
- elastic-job-lite 資料結構分析AST資料結構
- iOS APP上架被拒重新提交稽核流程iOSAPP
- 【Oracle】ORA-23421: job number XXXX is not a job in the job queueOracle
- printk流程分析
- printk 流程分析
- Lifecycle 流程分析
- svn專案遷移至gitlab流程(保留提交記錄)Gitlab
- Flink原始碼剖析:Jar包任務提交流程原始碼JAR
- 01-Spark的Local模式與應用開發入門Spark模式
- elastic-job-lite 入門以及架構原理分析AST架構
- Flutter setState流程分析Flutter
- Local Storage
- Flink standlone 模式,Job的運算元一直轉圈模式
- 十五:MySQL層事務提交流程簡析(筆記)MySql筆記
- 第15節:MySQL層事務提交流程簡析MySql
- XXL-JOB定時任務框架(Oracle定製版)框架Oracle
- iOS模式分析 策略模式iOS模式
- Seata AT模式的整體流程模式
- Sqoop jobOOP
- spark 原始碼分析之十九 -- Stage的提交Spark原始碼
- Unbound啟動流程分析