在前面几篇文章里面,我们介绍了flink的几种API操作数据,在这些简单的案例里面,我们可以看到flink的一些基础功能模块及实现效果。这篇文章我们剖析下flink的整体架构。不多说,先来一张flink的整体架构图
在这个架构图里面,我们可以看到整个flink分成了4层,分别是:
部署层、核心运行层、API层、Library层
下面我们分别介绍下
1、部署层
部署成这块主要就是指flink的单机/集群的部署物理位置,这里我们可以在本地部署单机,使用Local模式,也可以在服务器上部署独立集群,使用Standalone模式,同时我们还可以使用yarn资源管理器进行管理,使用Yarn模式。当然最重要的是现在各个云厂商有提供付费版的集群服务,使用这种付费版的集群服务,我们不需要单独再搭建和做基础运维了,只需要在付费的集群里面运行我们的jobs,监控我们的jobs即可。
2、核心运行层
这一层主要是代表flink的job运行的环境,此环境的主要功能有:
1、支持分布式流计算 2、从作业图到执行图的映射、调度、监控管理等 3、为上层的API层提供基础服务 4、构建新的组件或算子。
3、API层
api层主要是针对有界数据流和无界数据流的处理,对外提供DataStream API,DataSet API,Table API,SQL等的抽象。
4、Library层
这层主要是构建在flink基础api之上的一些库,例如:机器学习,图计算等高级特性的库。
还没有评论,来说两句吧...