该层主要涉及Flink的部署模式,目前Flink支持多种部署模式:本地Local、集群(Standalone/Yarn)、Kubernetes,Flink能够通过该层支撑不同平台的部署,用户可以根据必要来选择对应的部署模式,目前在企业中使用最多的是基于Yarn举行部署,也就是Flink On Yarn。
1.3.2 Runtime 焦点层
该层主要负责对上层不同接口提供基础服务,也是Flink分布式计算框架的焦点实现层,支持分布式Stream作业的实行、JobGraph到ExecutionGraph的映射转换、任务调理等,将DataStream和DataSet转成统一可实行的Task Oparator,达到在流式引擎下同时处置惩罚批量计算和流式计算的目的。
1.3.3 API & Libraries层
作为分布式计算框架,Flink同时提供了支撑流计算和批计算接口,未来批计算接口会被弃用,在Flink1.15 版本中批计算接口已经标志为Legacy(已逾期),后续版本建议使用Flink流计算接口,基于此接口之上抽象出不同应用范例的组件库,比方:FlinkML 机器学习库、FlinkCEP 复杂事件处置惩罚库、Flink Gelly 图处置惩罚库、SQL&Table 库。DataSet API 和DataStream API 两者都提供给用户丰富的数据处置惩罚高级API,比方:Map、FlatMap操纵等,同时也提供了比力底层的Process Function API ,用户可以直接操纵状态和时间等底层数据。
二、Flink运行时架构