三、Flink的工作原理

1、Flink架构

Flink架构的关键是三个重要组件的协同工作

Client(客户端):代码解析,类型抽取,代码优化,图构建,传输任务至jobmanager,取回结果

job manager(作业管理器):任务调度,checkpoint,任务追踪,收集维护元数据。

task manager(任务管理器):任务在此执行

2、flink架构的核心原则

  • 向用户屏蔽了大多数内部运行机制细节
  • api与实际执行逻辑解耦
  • 声明式编程
  • 无需或需要较少的调试
  • 统一的流式处理模型
  • 无需或需要较少的配置
  • 支持多种文件系统
  • 多种部署选项
  • 与hadoop生态系统及技术结合紧密
  • 应用逻辑与容错分离

3、flink的组件栈

如图:

2020-10-06【学习笔记】【企业数据湖】八、基于Apache Flink处理数据(2)

4、Flink中的Checkpoint

可以处理有状态流式数据的一个原因就是Checkpoint机制。容错就是完全依赖于该机制。

5、Flink中的SavePoint

savepoint是flink的另一个重要特性,也是它领先其他竞争对手的原因之一。

savepoint是某个时间点的快照,记录了输入流的处理过程中的精确位置,并保存了相关元数据。它还可以追踪所有挂起状态,或在flink执行引擎中正在执行的回话。

6、flink中的窗口选项

处理无限的数据流需要相应的窗口功能。flink datastream api有一些内置的窗口功能,可以满足大多数需求。

  • 时间窗口
  • 计数窗口
  • Tumbling窗口(滚动)
  • Sliding窗口(滑动)

7、内存管理

Flink的内存管理是开创性的,其具有以下特性:

  • 无GC的策略
  • 序列化基于单个字段而不是整个字段
  • 使用c++风格的内存管理而不是java风格的
  • 使用内存池,内存池由多个页组成,每个页由字节数组和map对象组成

 

 

 

相关文章:

  • 2021-05-11
  • 2021-05-26
  • 2022-01-09
  • 2021-07-08
  • 2021-06-28
  • 2022-12-23
  • 2021-09-08
  • 2021-09-16
猜你喜欢
  • 2021-10-23
  • 2021-11-07
  • 2021-07-16
  • 2021-12-08
  • 2021-10-24
  • 2021-12-15
  • 2022-12-23
相关资源
相似解决方案