传统部署模式
Session模式
Session模式是预分配资源的,也就是提前根据指定的资源参数初始化一个Flink集群,并常驻在YARN系统中,拥有固定数量的JobManager和TaskManager(注意JobManager只有一个)。提交到这个集群的作业可以直接运行,免去每次分配资源的overhead。但是Session的资源总量有限,多个作业之间又不是隔离的,故可能会造成资源的争用;如果有一个TaskManager宕机,它上面承载着的所有作业也都会失败。另外,启动的作业越多,JobManager的负载也就越大。所以,Session模式一般用来部署那些对延迟非常敏感但运行时长较短的作业。Per-Job模式
顾名思义,在Per-Job模式下,每个提交到YARN上的作业会各自形成单独的Flink集群,拥有专属的JobManager和TaskManager。可见,以Per-Job模式提交作业的启动延迟可能会较高,但是作业之间的资源完全隔离,一个作业的TaskManager失败不会影响其他作业的运行,JobManager的负载也是分散开来的,不存在单点问题。当作业运行完成,与它关联的集群也就被销毁,资源被释放。所以,Per-Job模式一般用来部署那些长时间运行的作业。

Deployer代表向YARN集群发起部署请求的节点,一般来讲在生产环境中,也总有这样一个节点作为所有作业的提交入口(即客户端)。在main()方法开始执行直到env.execute()方法之前,客户端也需要做一些工作,即:获取作业所需的依赖项;
通过执行环境分析并取得逻辑计划,即StreamGraph→JobGraph;
将依赖项和JobGraph上传到集群中。
只有在这些都完成之后,才会通过env.execute()方法触发Flink运行时真正地开始执行作业。试想,如果所有用户都在Deployer上提交作业,较大的依赖会消耗更多的带宽,而较复杂的作业逻辑翻译成JobGraph也需要吃掉更多的CPU和内存,客户端的资源反而会成为瓶颈——
不管Session还是Per-Job模式都存在此问题。为了解决它,社区在传统部署模式的基础上实现了Application模式。

Application模式
此模式下的作业提交框图如下。

可见,原本需要客户端做的三件事被转移到了JobManager里,也就是说main()方法在集群中执行(入口点位于ApplicationClusterEntryPoint),Deployer只需要负责发起部署请求了。另外,如果一个main()方法中有多个env.execute()/executeAsync()调用,在Application模式下,这些作业会被视为属于同一个应用,在同一个集群中执行(如果在Per-Job模式下,就会启动多个集群)。可见,Application模式本质上是Session和Per-Job模式的折衷。

参考:
https://blog.csdn.net/xuye0606/article/details/119619065

Flink的部署模式session 、pre job、aplication相关推荐

  1. Flink Standalone部署模式

    独立模式(Standalone)是部署 Flink 最基本也是最简单的方式: 所需要的所有 Flink 组件, 都只是操作系统上运行的一个 JVM 进程. 独立模式是独立运行的, 不依赖任何外部的资源 ...

  2. Flink 部署模式,session 、pre job、aplication三种主要模式

    长久以来,在YARN集群中部署Flink作业有两种模式,即Session Mode和Per-Job Mode,而在Flink 1.11版本中,又引入了第三种全新的模式:Application Mode ...

  3. 详解Flink中yarn部署模式以及测试

    在Flink中一共有三种部署模式,分别为local,standalone和yarn模式,由于前两者主要是用于开发和测试,本文将不再赘述,企业中用的更多的是yarn模式,关于yarn模式下为什么比sta ...

  4. Flink (四) Flink 的安装和部署- Flink on Yarn 模式 / 集群HA / 并行度和Slot

    接上一篇 Flink (三) Flink 的安装和部署- -Standalone模式 3. Flink  提交到 Yarn Flink on Yarn 模式的原理是依靠 YARN 来调度 Flink ...

  5. 2021年大数据Flink(三):​​​​​​​Flink安装部署 Local本地模式

    目录 Flink安装部署 Local本地模式 原理 操作 测试 Flink安装部署 Flink支持多种安装模式 - Local-本地单机模式,学习测试时使用 - Standalone-独立集群模式,F ...

  6. Flink JobManager HA模式部署(基于Standalone)

    参考文章:https://ci.apache.org/projects/flink/flink-docs-release-1.3/setup/jobmanager_high_availability. ...

  7. Flink On Yarn模式,为什么使用Flink On Yarn?Session模式、Per-Job模式、关闭yarn的内存检查,由Yarn模式切换回standalone模式时需要注意的点

    Flink On Yarn模式 原理 为什么使用Flink On Yarn? 在实际开发中,使用Flink时,更多的使用方式是Flink On Yarn模式,原因如下: -1.Yarn的资源可以按需使 ...

  8. 技术干货实战(4)- 分布式集群部署模式下Nginx如何实现用户登录Session共享(含详细配置与代码实战)

    原文链接:技术干货实战(4)- 分布式集群部署模式下Nginx如何实现用户登录Session共享(含详细配置与代码实战) 最近有小伙伴催更,让debug多写点技术干货,以便多学习.巩固一些技能:没办法 ...

  9. Flink运行时架构及各部署模式下作业提交流程

    1.运行时架构 1.1 核心组件 1.1.1 JobManager 作业管理器,对于一个提交执行的作业,JobManager 是真正意义上的"管理者"(Master),负责管理调度 ...

最新文章

  1. lambda函数详解
  2. 云视频会议的“多、快、好、省”(下)
  3. GHOST_XP详细制作过程
  4. stm32外设初始化和设置过程
  5. 电场 大学_人工电场优化算法
  6. Mysql循环查询结果并设置排序编号
  7. h5获取http请求头_React 前端获取http请求头信息
  8. ExtJS 4 Beta 2预览:Ext.Brew包
  9. python算法有多少个_Python算法比较两个排序的列表并计算多少个...
  10. P6+架构技术揭秘:Redis+Nginx+Dubbo精选+面试题+架构师精选视频(送)
  11. java dvd集合框架_JAVA 集合框架
  12. WPF依赖属性(续)(4)依赖属性与数据绑定
  13. cocoapods应用第一部分-xcode创建.framework相关
  14. 怎么看蛋白质编码序列_墨鱼的“墨汁”可以吃吗,它有什么营养?看完就明白,涨知识了...
  15. Celus 使用 AI 实现电路板设计的自动化
  16. [数学学习笔记]极限的概念.
  17. 最好用的ftp客户端:SecureFX for Mac
  18. 浅谈HyperLogLog底层算法逻辑
  19. 9个项目助你在2020年成为前端大神!
  20. Python读取excel表格数据并绘制成柱状图 | 数据排序、柱状图颜色、标签乱码等问题通通能够解决!

热门文章

  1. Tomcat 集群部署
  2. 用层次分析法选择一个旅游地
  3. 购买二手单反及二手镜头你必须注意的事项
  4. 2023新华为OD机试题 - 入栈出栈(JavaScript) | 刷完必过
  5. 疫情信息查询微信小程序的实现
  6. BNUOJ 27935 我爱背单词(FFT)
  7. 九度1031 xxx定律
  8. 在苹果路由器中将传统打印机设置成隔空打印
  9. 你GitHub的下载速度还没有被解决吗(GitHub怎么快速下载项目)
  10. 走向大佬第一步,构造函数真武术