Flink源码--CLI提交Job

本文详细介绍了Flink命令行接口CLI用于提交Job的过程,从使用语法、flink脚本、`org.apache.flink.client.CliFrontend`解析到Job提交的内部逻辑,包括配置加载、JobGraph生成和日志输出。重点解析了`CliFrontend`的`run`方法及`executeProgram`方法,展示了Job提交到Flink集群的关键步骤。
摘要由CSDN通过智能技术生成

Flink提供了一个命令行接口,来运行并控制打包后的jar文件中的程序。其是Flink安装的一部分,在本地以及分布式模式下都可以使用。CLI命令接口位于:

<flink_home>/bin/flink

当提交Job后,其默认会连接到Flink的JobManager。

提交Flink的Job有一个前提,即JobManager必须处于运行中,Flink有3种运行运行模式:

1、本地模式:<flink-home>/bin/start-local.sh

2、集群模式:<flink-home>/bin/start-cluster.sh

3、Yarn或Mesos环境

1、使用语法

具体的语法参见:Command-Line Interface

这里可将CLI的命令抽象为:

./flink <ACTION> [OPTIONS] [ARGUMENTS]

2、flink脚本

脚本文件:$FLINK_HOME/bin/flink

其主要是执行. “$bin”/config.sh来加载flink的环境配置信息,而config.sh则读取flink-conf.yaml、slaves、masters等来读取配置。

在flink脚本文件的最后(55行),执行了最终的Job:

exec $JAVA_RUN $JVM_ARGS "${log_setting[@]}" -classpath "`manglePathList "$CC_CLASSPATH:$INTERNAL_HADOOP_CLASSPATHS"`" org.apache.flink.client.CliFrontend "$@"

这里就是用java命令来执行flink的类:org.apache.flink.client.CliFrontend 来完成。

例如,我的CLI命令是:

flink run -c com.toptrade.Job toptrade-flink-1.0.jar prod.properties

则flink做的事情是校验我的命令,并加载flink的环境配置、taskManagers、HA的机器配置、日志文件、ClassPath以及hadoop的配置等,并最终执行java运行命令,如下:

这里写图片描述

即指定:

1、/home/flink/java/jdk1.8.0_60/bin/java 
2、-Dlog.file、-Dlog4j.configuration、-Dlogback.configurationFile
3、-classpath
4、执行org.apache
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值