作为一个流批一体架构,Flink是一个分层的系统。堆栈的不同层相互构建,并提高它们接受的程序表示的抽象级别:
- runtime 以 JobGraph 的形式接收处理程序。JobGraph 是一个公用的数据流载体,有生产和消费数据流的任务。
- DataStream API 和 DataSet API 都通过单独的编译生成 JobGraphs,DataSet API 使用优化器来确定程序的最佳计划,而DataStream API 使用流构建器。
- JobGraph 是根据 Flink 中可用的各种部署选项执行的(例如,local, remote, YARN 等)
- 与 Flink 绑定的库和 API 生成 DataSet 或 DataStream API 程序。这些表用于逻辑表查询、复杂事件处理和图形处理。
架构图如下,你可以点击下方的目录查阅相关组件的详细介绍:
Local(Single JVM):Flink基础 之 本地搭建教程
Cluster(Standalone,YARN):Flink 集群部署 之 YARN配置(YARN Setup)
Cloud(GCE,EC2):略。。。
Runtime(Distributed Streaming Dataflow):Flink基础 之 分布式运行环境(Runtime Environment)
DataStream API(Stream Processing):Flink流处理(DataStream API)概览(Data Source、Data Sink)
DataSet API(Batch Processing):略。。。
CEP(Event Processing):Flink 的库(Libraries) 之 FlinkCEP - Flink的复杂事件处理
Table API & SQL (Relational):Flink Table API & SQL - 开发基础代码样例和maven依赖