Flink提交任务部署的两种方式
2021-04-13 本文已影响0人
代码足迹
背景
把Flink的任务提交到Yarn两个部署模式,一个是 session模式,一个是per job模式。
session模式
在yarn上启动一个守护进程,用于启动多个job,即启动一个application master 用来管理多个job
集群中的所有任务使用相同的资源,如果集群挂掉得重启集群中的所有任务。
先启动一个集群
./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集群,各个集群之间独立运行,互不影响,且每个集群可以设置独立的配置
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: 动态参数设置