Apache Flink 任务提交模式

  • Flink可以基于多种模式部署:基于Standalone 部署模式,基于Yarn部署模式,基于Kubernetes部署模式
  • 以上不同集群部署模式下提交Flink任务会涉及申请资源,各角色交互过程,不同模式申请资源涉及到的角色大体相同,只是不同Flink集群部署模式支持的任务提交模式不同,对应流程略有不同,有如下三种
    • 会话模式 - Session Mode
    • 单作业模式 - Per-Job Mode(过时)
    • 应用模式 - Application Mode
  • 以上三种任务提交模式主要区别在于Flink集群生命周期不同,资源分配方式不同,以及Flink应用程序的main 方法执行位置(Client客户端/JobManager)不同,
会话模式(Session Mode)
  • Session模式下我们首先会启动一个集群,保持一个会话,这个会话中通过客户端提交作业,集群启动时所有资源都已经确认,所以所有提交任务会竞争集群中的资源。
  • 这种模式适合单个作业规模小,执行时间短的大量作业。
  • 优势:只需要一个集群,所有作业提交后运行在一个集群,所有任务共享集群资源,每个任务执行完成后就释放资源。
  • 缺点:因为集群资源是共享的,所以资源不够了,提交新的作业就会失败,如果一个作业发生故障导致Taskmanager宕机,那么所有作业都会受到影响。
单作业模式(Per-Job Mode)
  • 为更好隔离资源而生,Per-Job 模式是每提交一个作业启动一个集群,集群只为这个作业而生,这种模式下客户端运行应用程序,然后启动集群,作业被提交给JobManager,然后分发给TaskManager执行,作业执行完之后集群关闭,所有资源释放
  • 优势:每个作业都有自己的JobManager管理独享当下左右集群资源,就算作业发生故障,对应TaskManager宕机也不影响其他作业,如果一个Application 有多个Job组成,那么每个Job都有自己独立的集群

  • 缺点:每个作业都在客户端享集群JobManager提交,如果一个时间点大量提交Flink作业会造成客户端占有大量网络带宽,会加重客户端所在节点的资源消耗。

  • 注意:Per-Job模式在Flink 1.15中已经弃用,后续版本会剔除,目前只有yarn支持。被Application 模式替代

应用模式(Application Mod)
  • Session 模式 和 Pre-Job模式都是客户端将作业提交给JobManager,这种方式需要占用大量网络带宽下载以来关系,并且将二进制包发送给JobManager。在业务中经常需要提交多个Flink作业并且是在同一个客户端节点提交,这样就更加加剧了客户端所在节点的资源消耗,为了降低客户端这种资源消耗,我们可以使用Application Mode

  • Application 模式与Per-job类似,只是不需要客户端,每个Application提交之后都启动一个JobManager,也就是创建一个集群,这个JobManager只为执行这一个Flink Application而存在,Application中的多个Job都会共用该集群, Application执行结束之后JobManager也就关闭了。这种模式下一个Application会动态创建自己的专属集群(JobManager),所有任务共享该集群,不同Application之间是完全隔离的,在生产环境中建议使用Application模式提交任务。

  • 以上三种Flink 任务部署方式生产环境优先用Application 模式,三者区别如下:
  1. Session模式现有Flink集群后在提交任务,任务在客户端提交运行,提交的多个作业共享Flink集群
  2. Per-Job 模式和Application模式都是提交Flink任务后创建集群
  3. Per-Job模式通过客户端提交Flink任务,每个Flink任务对应一个Flink集群,每个任务都有很好的资源隔离性
  4. Application模式是在JobManager 上执行main方法,为每一个Flink的Application创建一个Flink集群,如果Application油多个任务,这些Flink任务共享一个集群。
相关推荐
xiaogai_gai2 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
skywsp3 小时前
Agent智能体架构设计-知识整理
大数据·人工智能
starzy19903 小时前
KafkaProducer 加载元数据:一条 MetadataRequest 的完整旅程
大数据·kafka
内容营销专家刘鑫炜4 小时前
AI搜索实战专家刘鑫炜:做AI搜索第一步,首先得让 AI 看到你
大数据·人工智能
大大大大晴天4 小时前
每天认识一个组件:Elasticsearch
大数据
Simon_lca4 小时前
ZARA、H&M、SHEIN验厂差异全对比:一套底层记录,三套接口输出
大数据·人工智能·经验分享·科技·制造
爱喝雪碧的可乐4 小时前
DeepSeek 崩了近5小时:一次故障扒透「单点依赖、重试风暴与大模型高可用」
大数据·人工智能·deepseek
Leo.yuan5 小时前
企业级AI分析平台技术选型:FineBI(AI原生版)的NL2BI架构与业务适配能力
大数据·人工智能
疯狂奔跑华丽跌倒5 小时前
医药行业数据治理工具选型,需匹配业务与AI落地需求
大数据·人工智能·经验分享
数据与AI工程手记5 小时前
Inmon和Kimball到底差在哪?
大数据