提交job的指令参数

-m 指定提交的jobmanager
-c 指令运行的全类名、jar包
-d 提交完立即退出客户端

部署

yarn

flink在yarn中资源是动态分配的

session-Cluster模式

image.png
特性:
只有一个yarn集群,
一直开启,直到手动停止
多个job争抢资源
main函数在客户端
适用:
任务执行时间少,频繁提交的小job
适合离线操作

指令

先启动会话

  1. bin/yarn-session.sh -d

执行:
不需要添加-m,自动找到启动的节点

  1. bin/flink run -c <全类名> <要执行的jar包所在路径>

per-job-cluster

image.png
特性:
一个job启动一个yarn集群,
job完成后关闭集群
job之间不会争抢资源
main函数在客户端
适用:
适合规模大,长时间运行的job

指令

  1. bin/flink run -d -t yarn-per-job -c <全类名> <要执行的jar包所在路径>

Application mode

特性:
和per-job-cluster一样
main函数在yarn的nodemanager(appmastar)上,也就是在集群上
区别:
用户的main函数是在集群中(job manager)执行的

指令

  1. bin/flink run-application -t yarn-application -c <全类名> <要执行的jar包所在路径>

高可用

flink 高可用,
无论是否让leader提交,还是给worker提交,都一样,因为worker会转发给leader

standalone:
启动多个jobmanager,zk选举

配置:
1. 在yarn-site.xml中配置

  1. <property>
  2. <name>yarn.resourcemanager.am.max-attempts</name>
  3. <value>4</value>
  4. <description>
  5. The maximum number of application master execution attempts.
  6. </description>
  7. </property>

注意: 配置完不要忘记分发, 和重启yarn
2. 在flink-conf.yaml中配置

  1. yarn.application-attempts: 3
  2. high-availability: zookeeper
  3. high-availability.storageDir: hdfs://hadoop162:8020/flink/yarn/ha
  4. high-availability.zookeeper.quorum: hadoop162:2181,hadoop163:2181,hadoop164:2181
  5. high-availability.zookeeper.path.root: /flink-yarn