Flink提交任务部署的两种方式

背景

把Flink的任务提交到Yarn两个部署模式,一个是 session模式,一个是per job模式。

session模式

在yarn上启动一个守护进程,用于启动多个job,即启动一个application master 用来管理多个job
集群中的所有任务使用相同的资源,如果集群挂掉得重启集群中的所有任务。

Flink提交任务部署的两种方式_第1张图片
image.png

先启动一个集群

./yarn-session.sh -n 4 -jm 1024 -tm 5120 -s 5 -nm yarn-session-jobs -d

再提交任务

./flink run -p 3 -yid application_id -d -c com.demo.Test01 ~/jar/demo.jar  

per job模式

启动一个单独的job提交到yarn集群上,即单job单session,实现资源的完全隔离。生产一般建议使用per job模式。

每个任务启动一个flink集群,各个集群之间独立运行,互不影响,且每个集群可以设置独立的配置

Flink提交任务部署的两种方式_第2张图片
image.png

提交命令

./flink run \
-m yarn-cluster \
-yn 2 \
-yjm 1024  \
-ytm 3076 \ 
-p 2 \
-ys 3 \
-yD name=hadoop \
-ynm FLINK_TEST \
-yqu rt_constant \
-c com.kb.rt.Test02 ~/jar/demo.jar 

参数说明

-m :yarn-cluster,代表启动单session提交单一job
-yn:taskmanager个数
-yjm:jobmanager的内存占用
-ytm:每个taskmanager的内存占用
-ys: 每个taskmanager可使用的CPU核数
-ynm:application 名称
-yqu:指定job的队列名称
-c: 程序主入口+ jar path
-p: 指定任务的并行度
-yD: 动态参数设置

你可能感兴趣的:(Flink提交任务部署的两种方式)