4.1 KiB
4.1 KiB
作业提交流程
作业提交脚本
flink 脚本
- 从
flink-conf.yml
获取Flink运行的环境信息taskmanager.compute.numa
:env.pid.dir
: Flink pid保存路径env.log.dir
: Flink日志保存路径env.log.max
: Flink日志归档数目env.yarn.conf.dir
: Yarn配置文件所在目录env.hadoop.conf.dir
: Hadoop配置文件路径env.hbase.conf.dir
: Hbase配置文件路径env.java.home
: Java_homeenv.java.opts.all
: Java 参数env.java.opts.jobmanager
:JobManager JVM相关参数env.java.opts.taskmanager
:TaskManager JVM相关参数env.java.opts.historyserver
: HistoryServer JVM参数env.java.opts.client
:Flink 客户端 JVM参数env.ssh.opts
: 定义Flink PID文件目录的配置参数启动或停止JobManager时传递给SSH客户端的其他命令行选项。high-availability.type
:Flink运行模式zookeeper.heap.mb
:
- 启动类:
CliFrontend
作业提交主函数
作业提交的入口函数为CliFrontend,处理流程如下:
- 查找配置文件夹路径
- 判断环境变量
FLINK_CONF_DIR
所在的文件夹是否存在。 - 如果
FLINK_CONF_DIR
所在的文件夹不存在则,判断脚本所在的相对路径../conf
是否存在。 - 如果上述路径不存在,则判断相对路径
conf
是否存在。
- 判断环境变量
- 加载全局配置
- 从配置文件夹路径下面的
flink-conf.yaml
文件当中读取配置信息
- 从配置文件夹路径下面的
- 加载命令行参数
- 启动Flink任务提交
run
: 使用除了application之外的其他模式提交作业。- 参数解析:
- 解析主函数,参数名称:
-c
、--class
。 - 解析运行jar文件,参数名称:
-j
、--jarfile
。 - 解析jar文件运行参数,参数名称:
-a
、--arguments
。 - 解析classpath信息,参数名称:
-C
、--classpath
。 - 解析并发度,参数名称:
-p
、--parallelism
。 - 解析运行模式,是否在后台运行,参数名称:
-d
、--detached
。 - 解析savepoint参数,参数名称:
-s
、--fromSavepoint
,传了当前参数,表示需要从指定的savepoint恢复作业。
- 解析主函数,参数名称:
- 尝试加载flink 作业jar包,并且判断依赖。判断主函数。
- 运行程序。
- 设置类加载器。
- ContextEnvironment.setAsContext:初始化远程客户端执行环境
- StreamContextEnvironment.setAsContext:ExecutionEnvironment是执行程序的上下文。提供了控制作业执行(例 如设置并行度)和与外部世界交互(数据访问)的方法。
- 调用主函数。
- 参数解析:
run-application
: 使用application模式提交作业。- 参数解析:
- 解析savepoint参数,参数名称:
-s
、--fromSavepoint
,传了当前参数,表示需要从指定的savepoint恢复作业。 - 参数名称:
-n
、--allowNonRestoredState
,表示是否允许跳过不可以restore的savepoint状态。 - 参数名称:
-rm
、--restoreMode
,表示定义如何从给定的保存点恢复,支持:claim、subsumed。 - 解析主函数,参数名称:
-c
、--class
。 - 解析运行jar文件,参数名称:
-j
、--jarfile
。 - 解析classpath信息,参数名称:
-C
、--classpath
。 - 解析并发度,参数名称:
-p
、--parallelism
。 - 解析并发度,参数名称:
-p
、--parallelism
。
- 解析savepoint参数,参数名称:
- 解析Flink jar包。
- 启动Flink作业,调用
ApplicationDeployer.run()
,具体实现类为:ApplicationClusterDeployer
- 初始化clientFactory:根据提供的配置查找适当的ClusterClientFactory。
- 执行deployApplicationCluster:触发应用程序集群的部署。支持,yarn、Kubernetes、Standalone三种模式。
- 参数解析:
info
: 使用:info [OPTIONS] ;主要查看class信息。list
: 显示正在运行或调度的程序。cancel
: 取消正在运行的作业。stop
: 停止正在运行的作业。savepoint
: 触发一个正在运行的应用生成savepoint-h
、--help
: 帮助信息。-v
、--version
: 显示版本信息。