Flink与Kylin深度实践
上QQ阅读APP看书,第一时间看更新

1.3 功能模块

Flink中包含很多功能模块,如部署层、核心层、API层、库层,如图1-1所示。

图1-1 Flink功能模块

每层的主要功能如下。

部署层:主要涉及Flink的部署模式。Flink支持多种部署模式,如本地、集群(Standalone/YARN)、云服务器(GCE/EC2)。

核心层:提供了支持Flink计算的全部核心实现,如支持分布式流式处理、JobGraph到ExecutionGraph的映射、调度等,为上层API提供基础服务。

API层:主要实现了面向无界Stream的流式处理和面向Batch的批量处理API,其中,面向流式处理对应DataStream API,面向批量处理对应DataSet API。

库层:该层也可以称为“应用框架层”,它是根据API层的划分,在API层之上构建的满足特定应用的计算实现框架,也分别对应于面向流式处理和面向批量处理两类。面向流式处理支持复杂事件处理(Complex Event Processing,CEP)、基于SQL-like的操作(基于Table的关系操作);面向批量处理支持FlinkML(机器学习库)、Gelly(图处理)。