大数据工具-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怎么处理反压和数据倾斜

后续还在学习更新中。

相关推荐
云原生指北2 小时前
命令行四件套:fd-rg-fzf-bat
java·大数据·elasticsearch
Datacarts3 小时前
AI大模型时代:微店商品数据API如何重构反向海淘决策
大数据·人工智能·重构
ws2019073 小时前
技术交流与商贸融合,2026广州汽车测试测量展释放产业协同新动能
大数据·人工智能·科技·汽车
运维老曾5 小时前
Flink 自定义数据源开发流程
大数据·flink
BioRunYiXue5 小时前
Nature Methods:CellVoyager 自主 AI 智能体开启生物数据分析新时代
大数据·开发语言·前端·javascript·人工智能·数据挖掘·数据分析
TDengine (老段)6 小时前
TDengine IDMP 工业数据建模 —— 数据标准化
大数据·数据库·物联网·ai·时序数据库·tdengine·涛思数据
AI先驱体验官7 小时前
AI智能体赛道新机遇:2026机会与挑战深度解析
大数据·人工智能·深度学习·重构·aigc
被摘下的星星7 小时前
Hadoop伪分布式集群搭建实验原理概要
大数据·hadoop·分布式
ggabb7 小时前
以色列的科技实力与全球格局分析
大数据·人工智能
Ujimatsu8 小时前
数据分析相关面试题-Python部分
大数据·python·数据分析