实时计算-Flink技术总结

本文记录了Flink技术的一些基本概念和关键技术。

Flink是什么?

​ 实时流计算框架、无界数据

同类竞品

Spark Streaming(mini batch处理)

与其他Hadoop生态之间的依赖关系

Hbase作为外部存储(列式存储)应对大数据存储,背后是Htable,底层是HDFS数据。

Redis作为外部缓存,处理一些高频访问的场景,比如黑名单、白名单等

为什么?

因为现实场景中有很多实时计算的场景,同时spark 有局限性。

具体是如何实现的?

部署框架:资源调度(Yarn、K8s、本地部署)、Job Manager(JobGraph、容灾等功能) 、 Task Manager(具体的执行节点)、后端state(内存、rocksDB或HDFS)

资源是如何分配的: TaskSlot、相互之间通信(actor系统) 、内存管理(堆内、堆外内存)

内部技术框架:算子(具体的计算逻辑,包括map、reduce、keyby、 groupby等)、窗口(用户侧接口,包括滑动窗口、翻转窗口等)、checkpoint(分布式快照) 、State(用于存储算子执行过程中的数据)、watermark机制

几个关键的技术:State技术、Checkpoint技术、反压技术、exactly once技术、高性能技术、JobGraph技术

Flink SQL 技术

// 待开始

有哪些使用场景?

  1. 计算当前微博热搜 TOP N
  2. 计算当前用户DAU、用户停留时长等

经典的一些问题

1. 性能出现瓶颈怎么办?如何进行调优?

问题定位: 否有反压、数据是否有倾斜

解决方案:资源调整(并行度、作业参数调优、Java内存调优)、用户代码调优(数据打散、预聚合等)

2. Exactly once 是如何保证的?

checkpoint 、二阶段提交协议、下游保证分布式事务

3. 高性能技术有哪些?

// TODO 待开始


实时计算-Flink技术总结
https://yyb345.github.io/11-实时计算flink/
Author
杨一博
Posted on
October 10, 2024
Licensed under