跳到主要内容
版本:Next

Application 命令行

bin/seatunnel-application.sh 是 Application Mode 的唯一入口,只提供三个操作。三者都面向同一个 外部资源平台并读取同一份部署文件,因此 status、cancel 看到的正是 submit 创建的 application。

命令格式​

bin/seatunnel-application.sh submit -t <target> -a application.config [-c job.conf]
bin/seatunnel-application.sh status -t <target> --id APPLICATION_ID -a application.config [--wait] \
[--wait-timeout <ms>] [--wait-interval <ms>]
bin/seatunnel-application.sh cancel -t <target> --id APPLICATION_ID -a application.config

内置帮助可以列出全部参数:

bin/seatunnel-application.sh -h
Usage: seatunnel-application.sh [options] submit | status | cancel
Options:
-a, --application-config Optional HOCON deployment file, e.g.
application.config (not the job file)
-c, --config SeaTunnel job configuration file (required for
submit unless the provider supplies it, for
example kubernetes.job-config-file)
-h, --help Show the usage message
--id Platform application ID (required for
status/cancel)
--job-id Optional native Zeta job ID for submit
--restore-job-id Historical Zeta job ID whose latest checkpoint
restores this new application
* -t, --target External resource platform: kubernetes
--wait Wait for completion (submit/status only; default:
return immediately) (default: false)
--wait-timeout Maximum time in milliseconds that --wait polls for
a terminal status before failing with the last
observed status; 0 waits indefinitely (default: 0)
--wait-interval Status poll interval in milliseconds while --wait
blocks (default: 500)
-D Override a non-sensitive deployment option:
-Dkey=value (syntax: -Dkey=value) (default: {})

参数​

参数适用操作说明
submit / status / cancel全部操作类型,位于第一个位置参数
-t、--target全部运行 application 的资源平台
-c、--configsubmitSeaTunnel 作业配置文件;作业由平台提供(如挂载的 job.conf)时可省略
-a、--application-config全部可选部署文件,包含公共选项和平台选项
-Dkey=value全部覆盖单个非敏感的 application.* / kubernetes.* 部署选项(例如 -Dapplication.worker-count=4),可重复;作业 ${...} 变量在 Pod 内解析,不在提交机替换
--idstatus、cancelsubmit 打印的平台 application ID
--waitsubmit、status轮询直到终态
--wait-timeout <ms>submit、status--wait 等待终态的最长时间(毫秒),超时后带最后状态报错;默认 0 表示一直等待。需配合 --wait
--wait-interval <ms>submit、status--wait 的状态轮询间隔(毫秒),默认 500。需配合 --wait
--job-idsubmit指定原生 Zeta 作业 ID,不指定时自动生成
--restore-job-idsubmit用该作业 ID 的最新 checkpoint 恢复本次 application

操作行为​

操作做什么结果
submit完成作业本地化,在平台上创建 application 并启动打印 application ID 与原生作业 ID
status读取平台状态并映射为 ApplicationStatus打印 application ID 与状态;application 失败时以非零码退出
cancel删除 application 及其自有资源打印 application ID 与取消结果

submit 立即返回​

submit 在平台接受并启动 application 后立即返回,镜像拉取、准入和调度慢都不会让命令失败; 需要终态时加 --wait 在同一命令内等待:

bin/seatunnel-application.sh submit -t <target> -a application.config --wait

作业可以来自 -c,也可以来自平台挂载到 application 内的文件(例如 kubernetes.job-config-file);两者都没有的提交会在创建第一个资源之前被拒绝。写成 ${VAR} 的值在运行中的 application 内解析,不在提交机解析,因此可以通过环境变量注入平台管理的 凭据。

状态与等待​

status 默认只读一次快照;加 --wait 后持续轮询直到终态。--wait-timeout 可以限制轮询时长, 超时后带最后状态报错退出;默认 0 表示一直等待,与 attached 客户端语义一致。--wait-interval 控制轮询间隔。平台无关的状态定义如下:

状态含义
CREATED平台已接受提交,尚未启动控制面
DEPLOYING平台正在准备控制面
RUNNINGapplication 正在运行,Worker 或作业可能仍在启动
SUCCEEDED作业成功结束
FAILED启动、执行或可上报的清理失败
CANCELED平台报告已取消
UNKNOWN已知 application 的平台状态暂时无法映射

SUCCEEDED、FAILED、CANCELED 为终态,--wait 在终态停止。FAILED、CANCELED 和 UNKNOWN 会让 status 以非零码退出,因此可以直接作为调度器或 CI 的完成判定:

if ! bin/seatunnel-application.sh status -t <target> --id "$APP_ID" -a application.config --wait; then
echo "application $APP_ID did not succeed"
fi

cancel​

cancel 请求平台移除 application:自有资源随之删除,SeaTunnel 之外管理的对象不受影响。已取消 或已完成的 application 能保留多久,取决于平台自身的保留策略。

各操作在具体平台上的行为见对应平台指南。