Flink 集群运行模式(极客时间课程笔记)

根据Main方法运行在Client还是JobManager分为三种类型

Session Mode

  • 共享JobManager和TaskManager ,所有Job都在一个Runtime中运行

Per-job Mode

  • 独享JobManager和TaskManager,好比每个Job单独启动一个Runtime

Application Mode (1.11版本)

  • main运行在Cluster上,而不在客户端,每个Application对应一个Runtime,Application可以包含多个Job

  • JobManager的生命周期不受Job影响

  • Deployer需要上传依赖的 Jar包

  • Deployer需要生成JobGraph

Session Mode

优点:资源充分共享,资源利用率高,Job在集群中管理,运维简单

缺点:资源隔离差、非Native类型部署,TM不易扩展,Slot计算资源伸缩性较差

image.jpeg

Per-job mode

  • TaskManager中的slot资源根据Job指定

  • JobManager的生命周期和Job生命周期绑定

  • Deployer需要上传依赖的 Jar包

  • Deployer需要生成JobGraph

优点:Job之间资源隔离充分、Slot数量可以不同

缺点:资源相对比较浪费,Job管理完全交给ClusterManagement,管理复杂

image.jpeg

Per Job 和Session模式都需要上传Jar消耗带宽
生成JobGraph需要消耗CPU资源,任务多的情况下客户端压力大

Application Mode集群运行模式:

  • 每个Application 对应一个Jobmanager,且可以运行多个Job

  • 客户端无需将Jar包上传到JobManager,仅负责管理Job的提交与管理

  • main方法运行JobManager中,将JobGraph的生成放到集群上运行

优点:有效降低带宽消耗和客户端负载、Application实现字段隔离、Application中实现资源共享

缺点:功能太新、还未经过生产验证;仅支持Yarn和k8s


image.png

Standalone仅支持Session模式

你可能感兴趣的:(Flink 集群运行模式(极客时间课程笔记))