我正在尝试使用docker compose进行Flink Per Job部署。
配置:
version: "2.2"
jobs:
jobmanager:
build: ./
image: flink_local:1.1
ports:
- "8081:8081"
command: standalone-job --job-classname com.organization.BatchJob
environment:
- |
FLINK_PROPERTIES=
jobmanager.rpc.address: jobmanager
parallelism.default: 2
taskmanager:
image: flink_local:1.1
depends_on:
- jobmanager
command: taskmanager
scale: 1
environment:
- |
FLINK_PROPERTIES=
jobmanager.rpc.address: jobmanager
taskmanager.numberOfTaskSlots: 2
parallelism.default: 2
使用job.jar扩展Flink镜像,作业成功执行。
作业完成后,JobManager
退出,但TaskManager
仍在运行,这是意料之中的。
必须添加任何配置才能退出JobManager
和TaskManger
?
版本:
Flink - 1.11.0
Java - 1.8
在此处查找与Flink团队的讨论。
简而言之,在外部管理的系统中,如独立作业/手动启动的k8s集群,任务管理器必须显式终止,或者实例在超时后终止。
在本机k8s部署中,任务管理器会像预期的那样迅速终止。