当前位置: 首页 > news >正文

Filnk运行模式

1. Session 模式(会话模式)

核心特点
  • 共享集群:预先启动一个长期运行的集群,多个作业共享集群资源(JobManager/TaskManager)。
  • 资源动态分配:提交作业时,任务槽(Task Slot)按需分配,但资源总量受限于集群初始配置。
  • 适用场景:开发调试、短周期作业(如测试环境)、需要快速提交多个小作业的场景。
工作流程
  1. 启动一个 Session 集群(如通过 start-cluster.sh 或 YARN Session)。
  2. 客户端(CLI、Web UI 或 SDK)向集群提交作业。
  3. 集群分配 Slot 运行作业,作业结束后资源释放回池。
优缺点
  • 优点:启动快,适合快速迭代;资源复用节省开销。
  • 缺点:资源隔离性差(一个作业故障可能影响其他作业);资源争用可能导致性能波动。

2. Job 模式(作业分离模式)

核心特点
  • 专属集群:每个作业独享一个集群,作业完成后集群资源完全释放。
  • 资源隔离:作业间互不影响,适合生产环境。
  • 适用场景:生产环境中长期运行的关键作业;需要严格资源隔离的场景。
工作流程
  1. 提交作业时,Flink 客户端触发资源管理器(如 YARN、Kubernetes)启动专属集群。
  2. 集群运行作业,作业完成后自动销毁。
优缺点
  • 优点:资源隔离性好,稳定性高;适合生产环境。
  • 缺点:每次提交需启动集群,延迟较高;资源无法复用。

3. Application 模式(应用模式)

核心特点
  • 主程序在集群中运行:应用的 main() 方法在集群的 JobManager 上执行,而非客户端。
  • 减少客户端负担:避免客户端成为数据处理瓶颈(如避免大文件上传)。
  • 适用场景:大规模作业、客户端资源有限(如边缘计算);需要简化依赖管理的场景。
工作流程
  1. 客户端将应用代码和依赖打包提交至集群。
  2. 资源管理器启动集群,JobManager 直接执行应用逻辑,生成作业图并运行。
优缺点
  • 优点:客户端轻量化;依赖管理更简单;适合复杂作业。
  • 缺点:调试略复杂(日志需从集群获取);需要完整打包应用。

4. 与资源管理器的结合

Flink 支持多种资源管理器,不同模式下行为略有差异:

  • Standalone 模式:Flink 自带的简单集群,通常用于测试,仅支持 Session 模式。
  • YARN:支持 Session、Job、Application 模式,通过 -m yarn-cluster 等参数配置。
  • Kubernetes:原生支持 Job 和 Application 模式,Session 需借助工具(如 Flink Operator)。
  • Mesos:逐渐被其他方案替代,官方支持较弱。

选择运行模式的决策因素

因素Session 模式Job 模式Application 模式
资源隔离差(共享集群)优(独享集群)优(独享集群)
启动延迟低(集群已预热)高(每次启动集群)中高(需打包上传)
客户端依赖需安装 Flink需安装 Flink仅需提交 JAR(更轻量)
适用场景开发、测试、短作业生产环境长作业大规模作业、边缘计算
资源利用率高(资源共享)低(资源独占)中(按需分配)

示例场景

  • 开发调试:本地启动 Session 集群,快速提交多个作业测试逻辑。
  • 流处理生产环境:使用 Job 模式 + YARN/Kubernetes,确保作业稳定运行。
  • 批处理大数据作业:选择 Application 模式,避免客户端处理海量数据。

总结

Flink 的运行模式本质是围绕资源管理和作业生命周期设计的:

  • Session 模式:强调快速响应和资源共享,适合敏捷开发。
  • Job 模式:强调隔离性和稳定性,适合生产环境。
  • Application 模式:平衡客户端与集群职责,适合复杂和大规模场景。

根据实际需求(如资源、隔离性、启动速度)和部署环境(YARN/K8s/Standalone),合理选择模式能显著提升效率和系统稳定性。

相关文章:

  • 智算中心系统化建设与运营框架
  • 矩阵补充,最近邻查找
  • python基础之--包和模块
  • python3面试题16个(系统编程)
  • 蓝桥杯备考:图的遍历
  • ZW3D二次开发_非模板表单_输入框类控件_逐字符回调
  • 线程控制与线程操作
  • 思库拉水厂开业庆典千人大会回顾
  • 简记_FPGA 硬件最小系统设计
  • 案例分享|树莓派媒体播放器,重构商场广告的“黄金三秒”
  • Transformer-based 1-Dimensional Tokenizer (TiTok):一种革命性的1D图像分词方法(代码实现)
  • LLaMA Factory对大模型微调和导出量化操作
  • ElementPlus 快速入门
  • 当科技业成为系统性压榨的绞肉机
  • PostgreSQL_数据使用与日数据分享
  • 如何修改SQL2008 账号SA的密码
  • 2025年- G26-Lc100-57.插入间隔(max、min)--java版
  • pyside6的QGraphicsView体系,当鼠标位于不同的物体,显示不同的右键菜单
  • 【自学笔记】Spark基础知识点总览-持续更新
  • 解决PowerShell下Git中文乱码问题
  • 美加征“对等关税”后,调研显示近半外贸企业将减少对美业务
  • 科学时代重读“老子”的意义——对谈《老子智慧八十一讲》
  • 理想汽车副总裁刘杰:不要被竞争牵着鼻子走,也不迷信护城河
  • 特朗普签署行政命令推动深海采矿,被指无视国际规则,引发环境担忧
  • 安徽铁塔回应“指挥调度中心大屏现不雅视频”:将严肃处理
  • 生于1982年,孙晋出任共青团广西壮族自治区委员会书记