Apache Flink学习笔记(2)Flink的3种部署方式

参考:
https://niyanchun.com/flink-quick-learning-deployment-mode.html#comments

3种部署方式

截至1.12.0版本,Flink有3种集群部署/运行模式:

Flink Session Cluster
Flink Job Cluster
Flink Application Cluster

三种运行模式主要区别在3个方面:

集群的生命周期
集群的资源隔离
main()方法在Client侧执行还是在集群侧执行

Flink Session Cluster

该模式就是先有一个已经在运行的Flink集群(至少有JobManager),然后我们把任务提交上去,所有的任务都运行在这一个集群上面,典型的场景就是Standalone模式静态部署的普通集群。

此时:

  1. 集群生命周期:独立于任务,任务的开始、结束等不影响集群的生命周期。
  2. 集群的资源隔离:所有任务都运行在一个集群上面,所以隔离性差。Flink的Slot仅能隔离内存,并不能隔离CPU资源。而且一个任务如果把TaskManager搞挂了,那上面的其它任务也会受牵连。
  3. main()方法在Client侧执行。

standalone搭建教程,不采用任何资源管理框架。(这个链接中很详细,已经试验过)
https://blog.csdn.net/weixin_43622131/article/details/112256784

这篇文章最后提交自带的案例的时候,命令中的–output后应该是不存在的文件,flink会自动创建,如果是存在的文件,会报错。。。

Flink Job Cluster

该模式就是每个Job动态创建一个属于自己专有的集群,此时:

  1. 集群生命周期:与任务生命周期同步,随任务运行而创建,随任务结束而消亡。
  2. 集群的资源隔离:任务独占集群,隔离性最好。
  3. main()方法在Client侧执行。
  4. 该模式以前也称为"Flink Cluster in per-job mode".

Flink Application Cluster

一个Application指包含一个或多个Jo)的程序,也就是包含多个execute或executeAsync。该模式下,一个Application动态创建一个属于自己专有的集群,Application内的所有任务共享该集群,很显然这是一种介于Session Cluster和Job Cluster之间的模式:不同Application之间是完全隔离的,类似Job Cluster;但一个Application内的任务是不隔离的,类似于Session Cluster。

此时:

  1. 集群生命周期:与Application生命周期同步,随Application运行而创建,随Application结束而消亡。
  2. 集群的资源隔离:Application之间隔离,Application内的所有Job共享集群,隔离性一般。
  3. main()方法在集群侧执行。
  4. 该模式以前也称为"Flink Cluster in application mode".

3种模式的对比

  1. 就资源隔离性而言,Flink Job Cluster、Flink Application Cluster、Flink Session Cluster隔离性依次降低。
  2. Flink Application Cluster的 main()方法是在集群侧的JobManager中执行的,其它两种模式是在Client端执行的。这个对于一些比较大型或复杂的应用来说区别还是挺大的,毕竟集群侧的资源一般是比较充足的,而且可以负载均衡。Client测去执行main()方法可能会是一个瓶颈,特别是有多个人共享这个Client的时候。
  3. 集群动态创建这个不是所有模式都支持的,一般只有依赖Kubernetes、YARN之类的模式才可以。动态创建的好处就是动态扩展会比较好,特别是横向的扩展。但弊端是每次提交任务都要先创建一个集群,对于那些执行时间短、频次高的任务可能就不是特别合适。

常见集群管理框架对三种模式的支持

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值