大数据工具-Flink

1. Flink公司架构

架构:主从(Master-Slave)模式

核心组件:Client(设计师-故障恢复)JobManager(派活-调度)TaskManager(干活包头-数据处理),由此大家肯定看出来TaskManager还有很多干活的小弟(Task Slot).

干活流程

(1) 图纸设计 (Client)

  • 角色Client (项目设计师)

  • 动作

    • 用户编写代码(定义 Source, Map, Sink 等算子)。

    • Client 将代码转换成 JobGraph(初步施工图纸)。

    • 提交 :Client 把图纸发给 JobManager,然后就可以"下班"了。

(2) 任务分配与资源筹备 (JobManager)

  • 角色JobManager (总包工头)

    • Dispatcher (前台接待):接收 Client 提交的图纸。

    • JobMaster (现场经理):每个项目配一个,负责把JobGraph 细化为物理施工图(ExecutionGraph),决定哪个算子去哪个机器跑。

    • ResourceManager (物资部长):负责找机器。如果集群资源不够,它会向 YARN/K8s 申请新的 TaskManager (招新工人)。

  • 动作

    • JobMaster 向 ResourceManager 申请资源(Slots)。

    • ResourceManager 协调现有的 TaskManager 上报空闲的 Slot (工位)。

(3) 正式干活 (TaskManager & Slots)

  • 角色TaskManager (包工头) & Task Slot (具体干活的工人)

  • 动作

    • 部署:JobManager 把具体的任务代码下发给 TaskManager 的特定 Slot。

    • 执行:Slot 开始处理数据流。

      • Task Chaining (任务链):为了效率,JobManager 会把多个小任务(如 Map -> Filter)串起来,交给同一个 Slot 一口气做完,减少传递损耗。
    • 数据交换 (Shuffle):如果需要跨机器传数据(比如 GroupBy),不同 TaskManager 之间会通过网络直接传输。

(4) 监工与备份 (容错机制)

  • 角色JobManager (监工) & TaskManager (记录员)

  • 动作

    • 心跳检测:TaskManager 定期向 JobManager 报平安(心跳)。

    • Checkpoint (检查点)

      • JobManager 定期喊一声:"大家停一下手里的活,把当前进度存个档!"

      • 所有 TaskManager 将内存中的状态快照保存到持久化存储(如 HDFS/S3)。

    • 故障恢复

      • 如果某个 TaskManager 挂了(断电/宕机),JobManager 发现心跳丢失。

      • JobManager 立即指挥其他健康的 TaskManager,利用最近一次的 Checkpoint 存档,重新拉起任务 ,从断点继续干。(注意:这里才是故障恢复的核心,Client 不参与)

关于Flink怎么处理反压和数据倾斜

后续还在学习更新中。

相关推荐
大大大大晴天3 小时前
深入解析 Flink Kafka Connector:原理、配置与最佳实践
flink
大大大大晴天1 天前
Hudi技术内幕:RecordPayload到RecordMerger
大数据
SelectDB2 天前
秒级弹性、最高降本 70%:SelectDB Serverless 如何重塑云数仓资源效率
大数据·后端·云原生
WhoAmI2 天前
MapReduce框架原理解析一:InputFormat
大数据·hadoop
WhoAmI2 天前
MapReduce框架原理解析三:OutputFormat
大数据·hadoop
WhoAmI2 天前
MapReduce框架原理解析二:Shuffle
大数据·hadoop
大大大大晴天3 天前
Hudi技术内幕:Key Generation原理与实践
大数据
得物技术6 天前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
久美子6 天前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树887 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai