Flink底层架构与运行流程

这张图展示了Flink程序的架构和运行流程。

主要组件及功能:

  1. Flink Program(Flink程序) :
    • 包含Program code(程序代码),这是用户编写的业务逻辑代码。
    • 经过Optimizer / Graph Builder(优化器/图构建器)处理后,生成Dataflow graph(数据流图),它表示了程序中数据处理的流程和任务之间的关系。
  2. Client(客户端) :
    • 包含Actor System(Actor系统),用于与其他组件进行通信和交互。
    • 客户端的主要功能是向JobManager提交作业(Submit job (send dataflow)),以及取消或更新作业(Cancel / update job)。同时,它还接收来自TaskManager的状态更新(Status updates)和统计结果(Statistics & results)。
  3. JobManager(作业管理器) :
    • 也包含Actor System,用于与客户端和TaskManager进行通信。
    • 它是整个系统的核心组件,负责协调和管理作业的执行。
    • Scheduler(调度器)负责将任务分配到不同的TaskManager上执行。
    • Checkpoint Coordinator(检查点协调器)负责协调分布式快照(检查点)的创建,以保证数据处理的容错性和一致性。
    • 它还持有Dataflow Graph,用于根据数据流图来调度和管理任务。
  4. TaskManager(任务管理器) :
    • 每个TaskManager包含多个Task Slot(任务槽),任务槽是执行任务的基本单位,图中显示每个TaskManager有三个任务槽,其中部分任务槽中已经有Task(任务)在执行。
    • Memory & I/O Manager(内存和I/O管理器)负责管理任务的内存和输入输出操作。
    • Network Manager(网络管理器)负责管理任务之间的数据传输,通过Data Streams(数据流)在不同的TaskManager之间传输数据。
    • Actor System用于与JobManager和其他TaskManager进行通信,包括发送任务状态(Task Status)、心跳(Heartbeats)、统计信息(Statistics)等,同时接收来自JobManager的任务部署、停止、取消等指令(Deploy/Stop Cancel Tasks)以及触发检查点(Trigger Checkpoints)等操作。

整体流程:

  1. 用户编写Flink程序代码,经过优化器和图构建器生成数据流图。
  2. 客户端将数据流图提交给JobManager。
  3. JobManager根据数据流图和资源情况,通过调度器将任务分配到不同的TaskManager的任务槽中执行。
  4. TaskManager执行任务,并通过网络管理器进行数据传输,同时通过Actor系统与JobManager和其他TaskManager进行通信,汇报任务状态、心跳、统计信息等,并接收管理指令。
  5. JobManager协调整个作业的执行,包括检查点的创建等,以确保作业的正确执行和容错性。

这种架构使得Flink能够高效地处理大规模数据流,具有良好的可扩展性和容错性,广泛应用于实时数据处理和流式计算等场景。

相关推荐
wafrdggh7 小时前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
大大大大晴天9 小时前
OLTP、OLAP、数据湖、数据集市、湖仓一体到底是什么关系?
大数据
benchmark_cc11 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
正在走向自律12 小时前
AI Agent 落地这一年:从“能跑起来”到“敢放出去”
大数据·人工智能·ai agent·智能体·mcp·a2a
freejackman13 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
goujunwe14 小时前
GEO 内容的“可摘录性”打磨技巧:段落、表格、小标题怎么写,方便大模型提取独立答案块
大数据·人工智能
小田学Python14 小时前
DeepSeek Harness 完整上手指南:安装部署 + 必装插件 + 用一周就回不去的功能
大数据·大模型·agent·ai工具·deepseek
成都蜀味缘餐饮技术培训学校18 小时前
手撕烤兔技术培训实战指南,秘制腌料配方比例与调制手法
大数据·经验分享·笔记·其他·微信公众平台
roman_日积跬步-终至千里18 小时前
AI 能让一个人成为团队吗?从数据中台到 OPC,重新理解软件工程能力
大数据·人工智能·软件工程
且从容.19 小时前
ubuntu安装flink
linux·ubuntu·flink