Flink作业提交的方式分为application模式,per-job模式和session模式。
1.per-job模式
在Yarn创建一个Flink集群,然后在提交任务客户端所在机器本地运行作业jar的main方法,提交生成的JobGraph到Flink集群的JobManager。如果附带--detached
参数,提交的作业被accept的时候,客户端会停止运行(命令行不用一直开着,生产环境必须。开发测试时可不带--detached
参数,通过命令行查看运行日志)。
实际生产中推荐使用此模式。每个作业都使用单独的Flink集群,它们消耗的资源是互相隔离的,一个作业的崩溃不会影响到其他作业。
flink run -t yarn-per-job --detached /path/to/job.jar
2.session模式
首先启动Flink Yarn Session,它是一个常驻与Yarn的Flink集群。启动成功后,无论是否有作业执行,或者作业是否执行完毕,该session始终保持运行。启动yarn session的方法如下:
export HADOOP_CLASSPATH=`hadoop classpath` ./bin/yarn-session.sh --detached
yarn-session支持的相关参数解释:
- -d/--detached: Detach模式,session启动成功后client停止运行。不用保持控制台一直开启。
- -nm: Application名称
- -jm: Job Manager 容器的内存
- -tm: Task Manager 容器的内存</