Flink 官方提供的 SQL 客户端可以支持编写 SQL、调试和提交 Flink 任务到 Flink 集群上的功能,具体使用操作,可参考Flink官方文档。本文将额外介绍几种火山引擎 LAS Flink 的使用场景。
在火山 LAS Flink 下,我们可以通 SQL 客户端将 Flink SQL 任务提交到 Standalone 集群或者 Yarn 集群。
Standalone 场景下需要先启动一个 Standalone 的集群,可在FLINK_HOME
目录(默认为/usr/lib/emr/current/flink
)下运行以下命令创建:
./bin/start-cluster.sh
Standalone 集群启动成功后,可以执行以下命令启动 SQL 客户端命令行界面:
./bin/sql-client.sh embedded
如果想停止 Standalone 集群,可执行以下命令停止:
./bin/stop-cluster.sh
Yarn 集群场景下支持多种 Flink 任务提交模式,包括 Yarn-Session 模式、Per-Job Cluster 模式、Application 模式。注意:Flink SQLClient 暂不支持 Application 模式。
Session 模式
Session 模式下,需要先执行以下命令启动 Yarn Session:
./bin/yarn-session.sh -d
Yarn Session 启动成功后,会创建一个/tmp/.yarn-properties-root
文件,记录最近一次提交到 Yarn 的 Application ID,执行以下命令启动 SQL 客户端命令行界面,后续指定的 Flink SQL 会提交到之前启动的 Yarn Session Application。
./bin/sql-client.sh embedded -s yarn-session
可以执行以下命令停止当前启动的 Yarn Session
cat /tmp/.yarn-properties-root | grep applicationID | cut -d'=' -f 2 | xargs -I {} yarn application -kill {}
Per-Job Cluster 模式
Per-Job Cluster 模式无需提前启动集群,可以在启动 SQL 客户端命令行界面,设置execution.target
,后续提交的每一个 Flink SQL 任务将会作为独立的任务提交到 Yarn。
注意:yarn-per-job 模式已经在 Flink 1.16 被标记为 deprecated 状态。
./bin/sql-client.sh embedded Flink SQL> set execution.target=yarn-per-job; [INFO] Session property has been set.
也可以通过在flink-conf.yaml
文件预定义配置改参数
# flink-conf.yaml execution.target: yarn-per-job