Flink Session集群与Job集群:创建、配置及识别方式咨询
Flink Session集群与Job集群相关问题解答
一、核心概念深入理解
- Session集群:长期运行的共享集群实例,可同时承载多个作业,资源由所有提交的作业共享。适合资源复用需求高、作业启动速度要求快的场景,比如批量运行多个小作业。
- Job集群:为单个作业专属创建的集群,作业启动时集群初始化,作业执行完毕后集群自动销毁。适合资源隔离要求严格的大作业,能避免作业间的资源竞争与干扰。
二、创建方法及配置参数
创建Session集群
本地模式
直接执行启动命令即可:
./bin/start-cluster.sh
默认配置下会启动包含1个JobManager和1个TaskManager的Session集群。
分布式YARN模式
通过命令快速启动,可指定资源参数:
./bin/yarn-session.sh -n 3 -s 4 -jm 2048 -tm 4096
关键参数说明:
-n:TaskManager的数量-s:每个TaskManager的slot数量-jm:JobManager的内存配额(单位MB)-tm:单个TaskManager的内存配额(单位MB)
也可通过修改conf/flink-conf.yaml配置全局参数,常用项:
jobmanager.rpc.address:设置JobManager的访问地址taskmanager.numberOfTaskSlots:全局配置每个TaskManager的slot数
创建Job集群
本地模式
直接提交作业即可自动创建专属集群:
./bin/flink run ./examples/streaming/WordCount.jar
作业启动时临时初始化集群,作业结束后集群立即关闭。
分布式YARN模式
提交作业时指定yarn-cluster模式:
./bin/flink run -m yarn-cluster -yn 2 -ys 3 -yjm 1024 -ytm 2048 ./examples/streaming/WordCount.jar
关键参数说明:
-m yarn-cluster:指定以Job集群模式部署在YARN上-yn:TaskManager数量-ys:每个TaskManager的slot数量-yjm:JobManager内存配额-ytm:单个TaskManager内存配额
三、集群类型判断方法
- 启动逻辑判断:先启动集群服务(如
start-cluster.sh/yarn-session.sh),再多次提交作业的是Session集群;提交作业时才触发集群创建的是Job集群。 - 生命周期判断:Session集群无作业时仍保持运行状态;Job集群的生命周期与作业完全绑定,作业结束后集群立即终止。
- Flink UI判断:Session集群的UI中可查看多个作业的运行记录;Job集群的UI仅显示当前作业,作业结束后UI无法访问。
- YARN环境判断:Session集群在YARN中是长期存活的Application;Job集群对应的YARN Application会随作业结束而销毁,且名称通常包含作业标识。
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

