flink1.10版local模式提交job流程分析
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
- MapReduce V1:Job提交流程之JobClient端分析
- hadoop yarn的job提交流程源码分析
- Spark源码分析之Job提交运行总流程概述
- Spark源码分析之一:Job提交运行总流程概述
- Flink on Yarn模式启动流程分析(Flink 1.1)
- Spark源代码分析之中的一个:Job提交执行总流程概述
- offboard模式的控制流程分析
- Android OTA升级原理和流程分析(三)---Android系统的三种启动模式
- Hadoop-1.2.1学习之Job创建和提交源码分析
- 客户端提交mr job源码流程分析
- MapReduce执行过程源码分析(一)——Job任务的提交
- job的提交过程源代码分析
- 【hadoop】 3007-hadoop的提交job的源码分析
- SSM框架day01——017——静态代理模式使用要求、静态代理模式的执行流程分析
- mahout中Taste提交job的流程:
- spark yarn-cluster模式提交task流程
- spark入门知识和job任务提交流程
- Flink源码第一篇:Flink之Job启动流程
- Flink JobManager HA模式部署(基于Standalone)
- Hadoop源码分析--MapReduce作业(job)提交源码跟踪