最近更新时间:2025-09-11 09:10:06
本文介绍如何通过客户端提交Flink作业。
ksc-serverless-tool是金山云Serverless 计算引擎进行作业提交的客户端工具,您可以在本地电脑(支持mac、liunx、window操作系统)或者金山云VPC内进行安装使用。客户端支持作业提交、查看日志及监控指标等,可在一个客户端工具内面实现Serverless Spark,Serverless Ray,Serverless Flink作业相关操作,免部署、免登录、无需考虑环境依赖,有网即可使用。
本文旨在带您快速熟悉操作流程,为您提供了一个作业示例,您可以直接下载以备后续步骤使用。
点击WordCountSQLExample.jar下载示例。
作业程序文件需上传至KS3,具体步骤详见:文件上传。
单击ksc-serverless-tool.tar.gz,下载客户端。
执行以下命令,解压并安装。
tar -zxvf ksc-serverless-tool.tar.gz解压完成后生成如下目录:
ksc-serverless-tool/ # 客户端的主目录
ksc-serverless-tool/bin/ # bin目录,里面包含了不同环境可执行文件
ksc-serverless-tool/bin/ksc-serverless-tool # bin目录下的可执行文件,会根据不同操作系统自动选择执行哪个进程
ksc-serverless-tool/bin/ksc-serverless-tool-linux # bin目录下的可执行文件,适用于Linux操作系统
ksc-serverless-tool/bin/ksc-serverless-tool-mac # bin目录下的可执行文件,适用于Mac操作系统
ksc-serverless-tool/bin/ksc-serverless-tool.exe # bin目录下的可执行文件,适用于Window操作系统
ksc-serverless-tool/conf/ # Conf目录,里面包含配置文件信息
ksc-serverless-tool/conf/appversion # Conf目录下的配置文件,可查看当前版本号,选择自动升级
ksc-serverless-tool/conf/connection.properties # Conf目录下的配置文件,包含作业提交相关的鉴权和配置信息
ksc-serverless-tool/README.md # 客户端的相关配置适用说明执行以下命令,修改connection.properties中的配置。
vim ksc-serverless-tool/conf/connection.properties推荐按照如下内容对文件进行配置,参数格式为key=value,示例如下:
[Properties]
AccessKeyId ="****"
AccessKeySecret ="*****"
Region ="cn-beijing-6"
WorkspaceId ="xxx"
Endpoint = "http://kmr.cn-beijing-6.api.ksyun.com"
EngineType = "flink"参数说明
参数 | 是否必填 | 说明 |
AccessKeyId | 是 | 执行Flink作业使用的金山云账号或RAM用户的AccessKey ID,获取操作详见:获取AK/SK |
AccessKeySecret | 是 | 执行Flink作业使用的金山云账号或RAM用户的AccessKey Secret |
Region | 是 | 地域ID,目前仅支持北京:cn-beijing-6 |
workspaceId | 是 | 工作空间ID |
Endpoint | 是 | 服务地址 |
EngineType | 否 | 默认提交spark任务,提交flink作业需指定为flink |
服务接入点
地域名称 | 地域ID | 公网接入地址 | VPC接入地址 |
华北1(北京) | cn-beijing-6 | kmr.cn-beijing-6.api.ksyun.com | kmr.cn-beijing-6.internal.api.ksyun.com |
执行以下命令,进入客户端工具目录:
cd ksc-serverless-tool请按照以下格式提交作业:
./bin/ksc-serverless-tool \
--engine flink \
--name flink-example-job \
--image hub.kce.ksyun.com/kmr-test/flink-ks3:1.19.0.3 \
--job-cores 1 \
--job-memory 2g \
--task-cores 1 \
--task-memory 2g \
--num-tasks 2 \
--conf "taskmanager.numberOfTaskSlots=2" \
--jar-uri "ks3://xxxx/jars/StateMachineExample.jar" \
--main-args "--backend,hashmap,--checkpoint-dir,ks3://xxxx/checkpoints/"提交作业参数说明
参数名称 | 示例值 | 是否必填 | 说明 |
--engine | flink | 否 | 未指定该参数默认提交spark作业,也可以在配置文件中设置EngineType来区分作业类型 |
--name | flink-test | 否 | 作业名称 |
--image | xxx | 否 | 作业使用的镜像地址。使用自定义镜像具体操作详见:自定义镜像 |
--upgrade-mode | stateless | 是 | flink类型 |
--job-cores | 1 | 是 | flink作业的Job核数 |
--job-memory | 2g | 是 | flink作业的Job内存 |
--task-cores | 1 | 是 | flink作业的Task核数 |
--task-memory | 2g | 否 | flink作业的Task内存 |
--num-tasks | 1 | 是 | flink 并行度parallelism |
--conf | --conf taskmanager.numberOfTaskSlots=2 \ --conf fs.ks3.endpoint=ks3-xxxx.ksyuncs.com \1 | 否 | 作业自定义参数,若有多个配置,可追加多个--conf |
--dependencies | ks3://bucket/A.jar,ks3://bucket/B.jar | 否 | 作业依赖文件ks3路径,多个文件使用逗号(,)分隔。 |
--jar-uri | ks3://bucket/xxx/flink-test.jar | 否 | flink作业应用程序代码的资源路径 |
--entry-class | org.apapche.flink.test | 否 | 启动类,需要填写类的全称。 |
--main-args | --backend,hashmap,--error-rate,0.1,--sleep,10 | 否 | 启动类所需参数,参数之间使用逗号(,)分隔。 |
--save-point-path | state.savepont.dir=ks3//bucket/xxx/ | 否 | flink 作业的初始保存点(Savepoint)路径,可以从特定时间点恢复作业 |
--high-priority | p0 | 否 | 作业优先级,默认优先级为p1, 设置为p0的作业将高优插入执行 |
工具的参数
参数名称 | 示例值 | 说明 |
--list | 5 | 查询作业列表,默认值为10 |
--detail | flinkdep-2025031218xxxx-gxxxuf | 查看flink任务详情。 |
--status | flinkdep-2025031218xxxx-gxxxuf | 查看flink任务状态。 |
--kill | flinkdep-2025031218xxxx-gxxxuf | 终止flink任务,多个任务用逗号隔开 |
--suspend | flinkdep-2025031218xxxx-gxxxuf | 挂起flink任务 |
--restart | flinkdep-2025031218xxxx-gxxxuf | 重启flink任务 |
--net-id | 1564ba1a-0cb9-49d2-beef-24fb538xxxxx | 否 |
查询作业详情
./bin/ksc-serverless-tool --detail flinkdep-2025031218xxxx-gxxxuf查询作业状态
./bin/ksc-serverless-tool --status flinkdep-2025031218xxxx-gxxxuf终止作业
./bin/ksc-serverless-tool --kill flinkdep-2025031218xxxx-gxxxuf作业重跑
./bin/ksc-serverless-tool --restart flinkdep-2025031218xxxx-gxxxuf查询作业列表
./bin/ksc-serverless-tool --list 2 #展示两条查询工作空间资源使用情况、HistoryServer地址
./bin/ksc-serverless-tool --detail-workspace
纯净模式
