flink job 提交到yarn 需要哪些配置文件 flink submit new job
文章目录
- 前言
- Standalone模式
- yarn模式
前言
本文介绍flink的任务提交模式。
Standalone模式
- Web UI提交job
打开flink的Web UI,在Web UI的Submit New Job提交jar包。 - Job参数:
Entry Class:程序的入口,指定入口类(类的全限制名)
Parallelism:任务的并行度 Program
Arguments:程序启动参数,例如–host localhost --port 7777
Savepoint Path:手动备份地址
- 提交job要注意分配的slot总数是否足够使用,如果slot总数不够,那么job执行失败。
- 命令行提交job
1)提交任务:flink run -c <入口类> -p <并行度> <jar包路径> <启动参数>
flink run -c wc.WordCountSocketStream -p 1 /opt/flink-1.12.2/job/flink_tutorial-1.0-SNAPSHOT.jar --host localhost --port 7777
2)查看任务:flink list
3)取消任务:flink cancel <Job的ID>
yarn模式
以Yarn模式部署Flink任务时,要求Flink是有 Hadoop 支持的版本,Hadoop 环境需要保证版本在 2.2 以上,并且集群中安装有 HDFS 服务。
- Sesstion Cluster模式
Session-Cluster 模式需要先启动集群,然后再提交作业,接着会向 yarn申请一块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到 yarn中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。所有作业共享 Dispatcher 和ResourceManager;共享资源;适合规模小执行时间短的作业。
- 启动一个一直运行的flink集群
./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 [-d]
附着到一个已存在的flink yarn session
./bin/yarn-session.sh -id application_1463870264508_0029
执行任务
flink run -c wc.WordCountSocketStream -p 1 /opt/flink-1.12.2/job/flink_tutorial-1.0-SNAPSHOT.jar --host 192.168.5.151 --port 7777
停止任务 【web界面或者命令行执行cancel命令】
yarn-session.sh 命令分析:
用法:
必选
-n,--container <arg> 分配多少个yarn容器 (=taskmanager的数量)
可选
-D <arg> 动态属性
-d,--detached 独立运行
-jm,--jobManagerMemory <arg> JobManager的内存 [in MB]
-nm,--name 在YARN上为一个自定义的应用设置一个名字
-q,--query 显示yarn中可用的资源 (内存, cpu核数)
-qu,--queue <arg> 指定YARN队列.
-s,--slots <arg> 每个TaskManager使用的slots数量
-tm,--taskManagerMemory <arg> 每个TaskManager的内存 [in MB]
-z,--zookeeperNamespace <arg> 针对HA模式在zookeeper上创建NameSpace
-id,--applicationId <yarnAppId> YARN集群上的任务id,附着到一个后台运行的yarn session中
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- Per Job Cluster 模式
一个 Job 会对应一个集群,每提交一个作业会根据自身的情况,都会单独向 yarn 申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。独享 Dispatcher 和 ResourceManager,按需接受资源申请;适合规模大长时间运行的作业。
每次提交都会创建一个新的 flink 集群,任务之间互相独立,互不影响,方便管理。任务执行完成之后创建的集群也会消失。
- 启动集群,执行任务
./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 ./examples/batch/WordCount.jar
注意:client端必须要设置YARN_CONF_DIR或者HADOOP_CONF_DIR或者HADOOP_HOME环境变量,通过这个环境变量来读取YARN和HDFS的配置信息,否则启动会失败
ps:如果想每次提交任务都是per-job模式,可以在flink-conf.xml文件里配置:execution.target: yarn-per-job