【博学谷学习记录】超强总结,用心分享 | 初识Flink

发布时间 2023-03-26 23:35:30作者: neilniu

【博学谷IT技术支持】

介绍

Flink是由Apache软件基金会开发的开源流处理矿建,其核心是用JAVA和Scala编写的分布式流数据引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序,Flink的运行本身也支持迭代算法的执行。

Flink可以做什么

  • 实时智能推荐
  • 复杂事件处理
  • 实时诈骗检测
  • 实时数仓与ETL
  • 流数据分析

Flink的优势是什么

  • 支持高吞吐、低延迟、高性能的流处理
  • 支持带有事件事件的窗口操作
  • 支持有状态计算的Exactly-once语义
  • 支持高灵活度的窗口事件,支持基于time、count、session,以及data-driven的窗口操作
  • 支持具有BackPressure功能的持续流模型
  • 支持基于轻量分布式快照(Snapshot)实现的容错
  • 一个运行时同时支持Batch on Streaming处理和Streaming处理
  • Flink在jvm内部实现了自己的内存管理

Flink的架构

主从架构:

主: JobManager
从: TaskManager

JobManager

  • 负责集群管理
  • 管理集群总资源
  • 分配任务给从节点执行
  • 和从节点通信
  • 做checkpoint,实现程序容错

TaskManager

  • 负责任务执行
  • 负责该节点资源管理
  • 和主节点通信
    • Slot: 任务在Slot里运行

         slot是集群的静态资源。slot的数量理论上是可以任意设置的
         如果一个从节点设置了多个Solt,那么多个Slot会均分该节点的资源
         Slot一旦确定后无法修改,需要修改需要重启Flink集群