flink 客户端简单介绍,以及run 命令的参数解析
flink 客户端
其实客户端并不是处理系统的一部分,它只负责作业的 提交。具体来说,就是调用程序的 main 方法,将代码转换成“数据流图”(Dataflow Graph), 并最终生成作业图(JobGraph),一并发送给 JobManager。提交之后,任务的执行其实就跟客 户端没有关系了;我们可以在客户端选择断开与 JobManager 的连接, 也可以继续保持连接。 之前我们在命令提交作业时,加上的 -d 参数,就是表示分离模式(detached mode),也就是断 开连接。
当然,客户端可以随时连接到 JobManager,获取当前作业的状态和执行结果,也可以发 送请求取消作业。不论通过 Web UI 还是命令行执行“flink run”的相关操作, 都是通过客户端实现的。
flink启动命令分析
1. flink启动命令的固定格式
./flink <ACTION> [OPTIONS] [ARGUMENTS]
2 种类
- run 编译和运行一个程序。
- run-application 在应用模式下运行一个应用程序
- info 显示程序的优化执行计划(JSON)。
- list 列出正在运行的和计划中的程序。
- stop 用一个保存点停止一个正在运行的程序(只限于流式工作)。
- cancel 取消一个正在运行的程序
- savepoint 触发正在运行的作业的保存点或处置现有的保存点。
2.1 当action为run时的options
语法:run [OPTIONS]
可以跟在run这个动作后边的OPTIONS:
- -c,–class
具有程序入口点方法的类("main() "方法的类)。只有当JAR文件在其manifest中没有指定该类时才需要。 - -C,–classpath
为集群中所有节点上的每个用户代码classloader添加一个URL。路径必须指定一个协议(例如file://),并且在所有节点上都能访问(例如通过NFS共享)。你可以多次使用这个选项来指定一个以上的URL。该协议必须被{@link java.net.URLClassLoader}所支持。 - -d,–detached 如果存在,以分离模式运行作业。
- -n,–allowNonRestoredState 允许跳过不能恢复的保存点状态。如果你从程序中删除了一个operator ,而该operator 在保存点被触发时是程序的一部分,你需要允许这样做。
- -p,–parallelism
运行程序的并行性。可选的标志,用于覆盖配置中指定的默认值。 - -py,–python
具有程序入口点的Python脚本。依赖的资源可以用–pyFiles选项进行配置。 - -pyarch,–pyArchives
为作业添加python归档文件。归档文件将被提取到python UDF工作者的工作目录中。目前只支持zip格式的文件。对于每个归档文件,需要指定一个目标目录。如果指定了目标目录名称,归档文件将被解压缩到一个具有指定名称的目录。否则,档案文件将被解压缩到与档案文件同名的目录中。通过该选项上传的文件可通过相对路径访问。‘#‘可以作为存档文件路径和目标目录名称的分隔符。逗号(’,’)可以作为分隔符来指定多个存档文件。这个选项可以用来上传虚拟环境和Python UDF中使用的数据文件(例如: --pyArchives file:///tmp/py37.zip,file:///tmp/data. zip#data --pyExecutable py37.zip/py37/bin/python)。数据文件可以用Python UDF访问,例如:f = open(‘data/data.txt’, ‘r’)。 - -pyexec,–pyExecutable
指定用于执行python UDF工作者的python解释器的路径(例如: --pyExecutable /usr/local/bin/python3)。python UDF工作者依赖于Python 3.5+、Apache Beam(版本==2.23.0)、Pip(版本>=7.1.0)和SetupTools(版本>=37.0.0)。请确保指定的环境满足上述要求。 - -pyfs,–pyFiles
为作业附加自定义的python文件。这些文件将被添加到本地客户端和远程python UDF工作者的PYTHONPATH中。标准的python资源文件后缀,如.py/.egg/.zip或目录都是支持的。逗号(‘,’)可以作为分隔符来指定多个文件(例如:--pyFiles file:///tmp/myresource.zip,hdfs://$namenode_address/myresource2.zip)。 - -pym,–pyModule
具有程序入口点的 Python 模块。这个选项必须与–pyFiles一起使用。 - -pyreq,–pyRequirements
指定一个requirements.txt文件,其中定义了第三方的依赖关系。这些依赖将被安装并添加到 python UDF 工作器的 PYTHONPATH 中。可以选择性地指定一个包含这些依赖项的安装包的目录。如果可选参数存在,使用’#'作为分隔符(例如:–pyRequirements file:///tmp/requirements.txt#file:///t mp/cached_dir)。 - -s,–fromSavepoint
用于恢复作业的保存点的路径(例如 hdfs://flink/savepoint-1537)。 - -sae,–shutdownOnAttachedExit 如果作业是以附加模式提交的,当CLI突然终止时,例如,响应用户中断,如键入Ctrl + C,执行尽力而为的集群关闭。
1)通用CLI模式的选项:
- -D <property=value> 允许指定多个通用配置选项。可用的选项可以在https://ci.apache.org/projects/flink/flink-docs-stabl e/ops/config.html找到。
- -e,–executor
已删除。请使用-t选项,该选项也可用于 “应用模式”。用于执行给定作业的执行器的名称,它相当于 "execution.target "配置选项。目前可用的执行器是。“远程”、“本地”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。 - -t,–target
给定应用程序的部署目标,这相当于 "execution.target "配置选项。对于 "运行 "动作,目前可用的目标是。“远程”、“本地”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。对于 "run-application "动作,目前可用的目标是。“kubernetes-application”。
2)yarn-cluster模式的选项:
- -m,–jobmanager
设置为yarn-cluster以使用YARN执行模式。 - -yid,–yarnapplicationId
附加到运行中的YARN会话 - -z,–zookeeperNamespace
用于创建高可用性模式的Zookeeper子路径的命名空间
3)默认模式的选项:
- -D <property=value> 允许指定多个通用配置选项。 可以在以下网址找到可用的选项:http://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html
- -m,–jobmanager
要连接到的作业管理器的地址。 使用此标志连接到配置中指定的不同的 JobManager。 注意:仅当高可用性配置为 NONE时才考虑此选项。 - -z,–zookeeperNamespace
用于为高可用性模式创建 Zookeeper子路径的命名空间
2.2 当action为run-application时的options
语法:run-application [OPTIONS]
可以跟在run-application这个动作后边的OPTIONS:
1)通用CLI模式的选项:
- -D <property=value> 允许指定多个通用配置选项。 可用选项可在以下网址找到:http://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html
- -e,–executor
已弃用:请改用- t选项,该选项也可与“应用程序模式”一起使用。 用于执行给定作业的执行器的名称,该名称等效于“execution.target”配置选项。 当前可用的执行器有:“remote”、“local”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。 - -t,–target
给定应用程序的部署目标,它等效于“execution.target”配置选项。 对于“run”操作,当前可用的目标是:“remote”、“local”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。 对于“run-application”操作,当前可用的目标是:“kubernetes-application”。
2.3 当action为info时的options
语法:info [OPTIONS]
可以跟在info这个动作后边的OPTIONS:
- -c,–class
用程序进入点分类(“主()”方法)。 仅在 JAR文件未在其清单中指定类时才需要。 - -p,–parallelism
要运行程序的并行性。 用于重写配置中指定的默认值的可选标志。
2.4 当action为list时的options
语法:list [OPTIONS]
可以跟在list这个动作后边的OPTIONS:
- -a,–all 显示所有程序及其作业标识
- -r,–running 仅显示正在运行的程序及其作业 ID
- -s,–scheduled 仅显示计划的程序及其作业 ID
1)通用CLI模式的选项:
- -D <property=value> 允许指定多个通用配置选项。 可用选项可在以下网址找到:http://ci.apache.org/projects/flink/flink-docs-stabl e/ops/config.html
- -e,–executor
已弃用:请改用- t选项,该选项也可与“应用程序模式”一起使用。 用于执行给定作业的执行器的名称,该名称等效于“execution.target”配置选项。 当前可用的执行器有:“remote”、“local”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。 - -t,–target
给定应用程序的部署目标,它等效于“execution.target”配置选项。 对于“run”操作,当前可用的目标是:“remote”、“local”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。 对于“run-application”操作,当前可用的目标是:“kubernetes-application”。
2)yarn-cluster模式的选项:
- -m,–jobmanager
设置为yarn-cluster以使用 YARN执行模式。 - -yid,–yarnapplicationId
附加到正在运行的YARN会话 - -z,–zookeeperNamespace
用于创建高可用性模式的Zookeeper子路径的命名空间
3)默认模式的选项:
- -D <property=value> 允许指定多个通用配置选项。可用的选项可以在https://ci.apache.org/projects/flink/flink- docs-stable/ops/config.html找到。
- -m,–jobmanager
要连接的JobManager的地址。使用这个标志可以连接到一个与配置中指定的不同的JobManager。注意。这个选项只有在高可用性配置为NONE时才会被尊重。 - -z,–zookeeperNamespace
用于创建高可用性模式的Zookeeper子路径的命名空间
2.5 当action为stop时的options
语法:stop [OPTIONS]
可以跟在stop这个动作后边的OPTIONS:
- -d,–drain 在采取保存点和停止管道之前,发送MAX_WATERMARK。
- -p,–savepointPath
保存点的路径(例如 hdfs://flink/savepoint-1537)。如果没有指定目录,将使用配置的默认值(“state.savepoints.dir”)。
1)通用CLI模式的选项:
- -D <property=value> 允许指定多个通用配置选项。可用的选项可以在https://ci.apache.org/projects/flink/flink-docs-stabl e/ops/config.html找到。
- -e,–executor
已删除。请使用-t选项,该选项也可用于 “应用模式”。用于执行给定作业的执行器的名称,它相当于 "execution.target "配置选项。目前可用的执行器是。“remote”、“local”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。 - -t,–target
给定应用程序的部署目标,这相当于 "execution.target "配置选项。对于 "运行 "动作,目前可用的目标是。“远程”、“本地”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。对于 "run-application "动作,目前可用的目标是。“kubernetes-application”。
2)yarn-cluster模式的选项:
- -m,–jobmanager
设置为yarn-cluster以使用YARN执行模式。 - -yid,–yarnapplicationId
附加到正在运行的YARN会话 - -z,–zookeeperNamespace
用于创建高可用性模式的Zookeeper子路径的命名空间
3)默认模式的选项:
- -D <property=value> 允许指定多个通用配置选项。可用的选项可以在https://ci.apache.org/projects/flink/flink- docs-stable/ops/config.html找到。
- -m,–jobmanager
要连接的JobManager的地址。使用这个标志可以连接到一个与配置中指定的不同的JobManager。注意。这个选项只有在高可用性配置为NONE时才会被尊重。 - -z,–zookeeperNamespace
用于创建高可用性模式的Zookeeper子路径的命名空间
2.6 当action为cancel时的options
语法:cancel [OPTIONS]
可以跟在cancel这个动作后边的OPTIONS:
- -s,–withSavepoint
废弃警告。用savepoint取消一个作业已被弃用。请使用 "stop "代替。触发保存点并取消作业。目标目录是可选的。如果没有指定目录,将使用配置的默认目录(state.savepoints.dir)。
1)通用CLI模式的选项:
- -D <property=value>允许指定多个通用配置选项。可用的选项可以在https://ci.apache.org/projects/flink/flink-docs-stabl e/ops/config.html找到。
- -e,–executor
已删除。请使用-t选项,该选项也可用于 “应用模式”。用于执行给定作业的执行器的名称,它相当于 "execution.target "配置选项。目前可用的执行器是。“remote”、“local”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。 - -t,–target
给定应用程序的部署目标,这相当于 "execution.target "配置选项。对于 "运行 "动作,目前可用的目标是。“远程”、“本地”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。对于 "run-application "动作,目前可用的目标是。“kubernetes-application”。
2)yarn-cluster模式的选项:
- -m,–jobmanager
设置为yarn-cluster以使用YARN执行模式。 - -yid,–yarnapplicationId
附加到正在运行的YARN会话 - -z,–zookeeperNamespace
用于创建高可用性模式的Zookeeper子路径的命名空间
3)默认模式的选项:
- -D <property=value> 允许指定多个通用配置选项。可用的选项可以在https://ci.apache.org/projects/flink/flink- docs-stable/ops/config.html找到。
- -m,–jobmanager
要连接的JobManager的地址。使用这个标志可以连接到一个与配置中指定的不同的JobManager。注意。这个选项只有在高可用性配置为NONE时才会被尊重。 - -z,–zookeeperNamespace
用于创建高可用性模式的Zookeeper子路径的命名空间
2.7 当action为savepoint时的options
语法:savepoint [OPTIONS]
可以跟在cancel这个动作后边的OPTIONS:
- -d,–dispose
要处理的保存点的路径。 - -j,–jarfile
Flink程序的JAR文件。
1)通用CLI模式的选项:
- -D <property=value> 允许指定多个通用配置选项。可用的选项可以在https://ci.apache.org/projects/flink/flink-docs-stabl e/ops/config.html找到。
- -e,–executor
已删除。请使用-t选项,该选项也可用于 “应用模式”。用于执行给定作业的执行器的名称,它相当于 "execution.target "配置选项。目前可用的执行器是。“remote”、“local”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。 - -t,–target
给定应用程序的部署目标,这相当于 "execution.target "配置选项。对于 "运行 "动作,目前可用的目标是。“远程”、“本地”、“kubernetes-session”、“yarn-per-job”、“yarn-session”。对于 "run-application "动作,目前可用的目标是。“kubernetes-application”。
2)yarn-cluster模式的选项:
- -m,–jobmanager
设置为yarn-cluster以使用YARN执行模式。 - -yid,–yarnapplicationId
附加到正在运行的YARN会话 - -z,–zookeeperNamespace
用于创建高可用性模式的Zookeeper子路径的命名空间
3)默认模式的选项:
- -D <property=value>允许指定多个通用配置选项。可用的选项可以在https://ci.apache.org/projects/flink/flink- docs-stable/ops/config.html找到。
- -m,–jobmanager
要连接的JobManager的地址。使用这个标志可以连接到一个与配置中指定的不同的JobManager。注意。这个选项只有在高可用性配置为NONE时才会被尊重。 - -z,–zookeeperNamespace
用于创建高可用性模式的Zookeeper子路径的命名空间