学习 Flink(七):Flink on YARN

Flink 支持多种集群部署:

  • Standalone
  • Flink on YARN
  • Flink on Mesos
  • Flink on K8s
  • 等等……

Flink on YARN 支持两种模式:

  • 会话模式(Session Mode),在 YARN 上运行长期运行的 Flink 集群;
  • 任务模式(Job Mode),在 YARN 上运行 Flink 任务。

会话模式

会话模式下,启动一个长期运行的 Flink 集群,可以同时运行多个任务,只能手动停止。

启动 Flink 会话:

export HADOOP_CONF_DIR=/etc/hadoop/conf && bin/yarn-session.sh -jm 8192 -n 4 -tm 4096 -s 8 -d  

参数说明:

  • -n --container 必选,分配 YARN Container 数量
  • -D 属性
  • -d --detached 启动一个独立的 YARN 会话,Flink YARN 客户端在提交到集群之后会关闭自己
  • -jm --jobManagerMemory JobManager 内存大小,单位 MB
  • -nm --name 名字
  • -q --query 显示可用的 YARN 资源(内存、CPU)
  • -qu --queue 指定 YARN 队列
  • -s --slots TaskManager 槽数
  • -tm --taskManagerMemory TaskManager 内存大小,单位 MB
  • -z --zookeeperNamespace HA 模式下,ZK 命名空间

成功之后,会启动控制台 Web 服务,如下图所示:

Apache Flink Dashboard

任务模式

任务模式下,Flink 集群启动运行单个任务。一旦任务结束,Flink 集群就会停止并归还所有资源。

运行任务:

bin/flink run -m yarn-cluster -yn 4 -ytm 4096 -ys 8 -yd app.jar  

参考