该命令用于启动Flink SQL Client,并连接到YARN集群会话:
bash
${FLINK_HOME}/bin/sql-client.sh embedded -i ${FLINK_HOME}/conf/sql-client-init.sql -s yarn-session
各部分含义如下:
- 核心执行文件
${FLINK_HOME}/bin/sql-client.sh
:Flink SQL Client启动脚本
--${FLINK_HOME}
:Flink安装目录的环境变量
--sql-client.sh
:Flink SQL交互客户端的可执行脚本
- 运行模式参数
embedded
:指定SQL Client以嵌入式模式运行
-- 特点:客户端与Flink集群在同一进程内启动
-- 适用场景:开发调试、单机测试或轻量级作业
-- 对比:remote模式
需连接独立部署的Flink集群
- 初始化脚本参数
-i ${FLINK_HOME}/conf/sql-client-init.sql
:指定启动时执行的初始化SQL文件
-- 作用:预加载SQL语句(如创建表、设置配置、注册函数等)
-- 示例场景:
sql
-- sql-client-init.sql可能包含的内容
CREATE TABLE user_log (...); -- 预定义表结构
SET 'execution.checkpointing.interval' = '10s'; -- 设置检查点间隔
- 执行环境参数
-s yarn-session
:指定在YARN会话模式下运行Flink作业
-- 工作原理 :连接到已创建的YARN Session集群(需提前通过yarn-session.sh启动)
.
.
-- 优势 :
...资源复用:多个作业共享同一YARN会话资源
...快速提交:避免每次作业启动时的YARN资源申请开销
...集群管理:由YARN负责资源调度和容器管理
.
.
-- 执行流程
...1.解析${FLINK_HOME}
环境变量定位Flink安装目录
...2.以嵌入式模式启动SQL Client进程
...3.执行初始化脚本sql-client-init.sql,完成环境准备
...4.连接到YARN集群中的现有会话(需确保yarn-session已提前启动)
...5.进入交互式SQL命令行界面,可直接输入Flink SQL语句执行
.
.- 注意事项
- 需提前启动YARN Session:
${FLINK_HOME}/bin/yarn-session.sh -n 2 -s 4
(2个TaskManager,每个4个slot) - 初始化脚本路径需存在且有执行权限
- 适用于Flink 1.11+版本,低版本可能参数名称不同(如旧版本用
-m yarn-cluster
)