Flink笔记

下面是你提供的文字整理后的结果:

  1. Flink是一个针对流数据和批数据的分布式处理引擎,同时支持原生流处理的开源框架。
  • 延迟低(毫秒级),且能够保证消息传输不丢失不重复。

  • 具有非常高的吞吐(每秒千万级)。

  • 支持原生流处理。

  • 容错性高,基于checkpoint机制。

  • 处理模型:单条事件处理;Spark Streaming是一个事件窗口内的所有事件。

  • 部署相对简单,只依赖JRE环境。

  • 应用场景:实时监控(用户行为预警);实时报表(双11直播大屏);实时个性化推荐;数据仓库(实时数据清洗、归并)。

  1. 流计算与批计算对比:
  • 流式计算实时、低延迟,批量计算非实时、高延迟。

  • 流式计算一般针对动态、无边界的数据,批量计算一般针对静态数据。

  • 流式计算任务是持续运行的,批量计算任务一次性完成。

  1. Flink的核心特性:
  • 事件时间:Flink应用程序需要从原始数据中解析出事件时间,并设置给Flink,用于时间窗口计算。

  • 灵活的窗口操作。

  • 可以处理超出主内存大小限制的数据,减少垃圾收集开销。

  • 对象序列化二进制存储。

  1. Flink的部署:
  • Application:每个Application对应一个Runtime,一个Application中可以包含多个Job。

  • JobManager:每个集群至少有一个,负责管理整个集群的计算资源。

  • JobManager向ResourceManager申请slot资源。

  • TaskManager:每个集群有多个TaskManager,TaskManager通过心跳与JobManager通信,每个TaskManager可以有多个Task slot。

  • 单个Slot可以用于一个或多个Task执行,但相同的Task不能在一个Slot中运行。

  • Client:执行main方法解析JobGraph对象,并提交给JobManager。

  1. Flink的API:
  • 开源实现的MapReduce模型,包含三个阶段:Map、Shuffle、Reduce。

  • 水位线:用于处理实时数据中的乱序问题,保证在一个特定事件后必须触发窗口进行计算。

  • 窗口的触发时机是窗口截至时间<=当前的Watermark。

  • 其他特性包括:window Evictor(数据清除器),OutputTag(分流标签),AsyncFunction(异步查询补充数据)。

  1. 状态管理:
  • Flink中的KeyBy算子根据指定的Key将数据流分区。

  • 默认的checkpoint interval为500ms。

  • savepoint用于手动触发保存状态数据,用于发版等情况,与checkpoint保存的内容相同。

  1. Table API:
  • 表的数据存储在catalog中,临时表存储在内存中,永久表存储在外部catalog中,比如Hive Catalog。
  1. 其他概念和接口:
  • RichParallelSourceFunction:并发数据源。

  • CheckpointListener:通知checkpoint完成。

  • CheckpointedFunction:定义快照实现。

  • ResultTypeQueryable接口:通过输入格式和功能明确告知API返回类型。

  • 数据源mq会进行数据分区,在多个Flink并发实例的情况下,并发消费以提高效率。

  1. 关于消费者和生产者的速度和消息堆积的问题:
  • 消费者的平均速度一定是大于生产者的平均速度,否则会造成消息堆积,mq通过offset来控制消费偏移量,但是还会保存一段时间的历史数据用来消息回溯和查询,一般是7天,保存数据的时候starRocks可以通过排序键做幂等 -算子本身不需要实现CheckpointedFunction的snapshotState方法就能实现State的保存,这是由Flink本身的机制实现的,snapshotState方法会在每次正常checkpoint的时候调用 -Flink本身支持starRocks,并且实现了snapshotState,功能是把缓存的待写入数据库的数据刷盘到starRocks,这样会有问题,就是每次checkpoint的时候都会把数据强制刷盘到数据库,这是一个同步处理,可能会造成写库很慢,消息堆积
相关推荐
计算机编程-吉哥2 小时前
大数据毕业设计-基于大数据的NBA美国职业篮球联赛数据分析可视化系统(高分计算机毕业设计选题·定制开发·真正大数据·机器学习毕业设计)
大数据·毕业设计·计算机毕业设计选题·机器学习毕业设计·大数据毕业设计·大数据毕业设计选题推荐·大数据毕设项目
计算机编程-吉哥2 小时前
大数据毕业设计-基于大数据的BOSS直聘岗位招聘数据可视化分析系统(高分计算机毕业设计选题·定制开发·真正大数据·机器学习毕业设计)
大数据·毕业设计·计算机毕业设计选题·机器学习毕业设计·大数据毕业设计·大数据毕业设计选题推荐·大数据毕设项目
RunningShare4 小时前
从“国庆景区人山人海”看大数据处理中的“数据倾斜”难题
大数据·flink
Hello.Reader5 小时前
Flink 执行模式在 STREAMING 与 BATCH 之间做出正确选择
大数据·flink·batch
文火冰糖的硅基工坊8 小时前
《投资-99》价值投资者的认知升级与交易规则重构 - 什么是周期性股票?有哪些周期性股票?不同周期性股票的周期多少?周期性股票的买入和卖出的特点?
大数据·人工智能·重构·架构·投资·投机
Elastic 中国社区官方博客8 小时前
Elasticsearch:使用推理端点及语义搜索演示
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
数据智能老司机9 小时前
数据工程设计模式——冷热数据存储
大数据·设计模式·架构
Hello.Reader11 小时前
Flink 连接器与格式thin/uber 制品、打包策略与上线清单
大数据·flink
隐语SecretFlow12 小时前
【隐私计算科普】如何实现可证明安全?
大数据·开源·边缘计算
lisw0512 小时前
AIoT(人工智能物联网):融合范式下的技术演进、系统架构与产业变革
大数据·人工智能·物联网·机器学习·软件工程