Flink基础

Flink核心特性

  • 统一数据处理组件栈,处理不同类型的数据需求(Batch,Stream,Machine Learning,Graph)
  • 支持事件时间,接入时间,处理时间等时间概念 20220830145536-2022-08-30-14-55-37
  • 基于轻量级分布式快照实现的容错 20220830145658-2022-08-30-14-56-59
  • 支持有状态计算
  • Support for very large state
  • querable state支持
  • 灵活的state-backend(HDFS,内存,RocksDB)
  • 支持高度灵活的窗口操作 20220830145844-2022-08-30-14-58-45
  • 带反压的连续流模型 20220830145941-2022-08-30-14-59-42
  • 基于JVM实现独立的内存管理
  • 应用可以超出主内存的大小限制,并且承受更少的垃圾收集的开销
  • 对象序列化二进制存储,类似于C对内存的管理 20220830150319-2022-08-30-15-03-20

Flink集群架构

集群架构

  • JobManager:管理节点,每个集群至少一个,管理整个集群计算资源,Job管理与调度执行,以及checkpoint协调。
  • TaskManager:每个集群有多个TM,负责计算资源提供。
  • Client:本性执行main方法解析JobGraph对象,并最终将JobGraph提交到JobManager运行,同时监控Job执行的状态。 20220830150732-2022-08-30-15-07-33

JobManager

20220830150851-2022-08-30-15-08-52

  • Checkpoint Coordinator
  • JobGraph ->Execution Graph
  • Task部署与调度
  • RPC通信(Actor System)
  • Job接收(Job Dispatch)
  • 集群资源管理(ResourceManager)
  • TaskManager注册与管理

TaskManager

20220830151846-2022-08-30-15-18-47

  • Task Execution
  • Network Manager
  • Shuffle Environment 管理
  • Rpc通信(Actorsystem)
  • Heartbeat withJobManager And RM
  • Data Exchange
  • Memory Management
  • Register To RM
  • Offer Slots ToJobManager

Client

20220830153055-2022-08-30-15-30-56

  • Application's main()Method执行
  • JobGraph Generate
  • Execution Environment 管理
  • Job提交与运行
  • DependenyJar Ship·RPC WithJobManager
  • 集群部署(Cluster Deploy)

JobGraph