Apache Flink 架构概览

485 阅读1分钟
原文链接: click.aliyun.com

Flink 1.X 的架构由若干层构成,包括部署层(deploy),核心处理层(core processing)和 API 层,Flink 1.4 的架构图如下。

flink_architecture

可以看到,Flink 采用的是分层的架构,即每一个组件(component)都隶属于某一层,从下往上层层递进来做清晰的抽象。

逐层来看,Flink 被设计为有多种部署模式,包括部署到本地,部署到 YARN 集群上以及部署到云端;Flink 的核心数据处理层,也称为运行时,通过 API 接收被转换为 JobGraph 形式的程序,JobGraph 包括一个并行数据流(data flow)和一个生产/消费数据流(data streams)的任务的集合;DataStream API 和 DataSet API 提供了定义 Job 的编程接口,应用程序在编译时即通过这些 API 被转化成 JobGraph,API 的背后有一套相应的优化策略支持,经过优化产生的 JobGraph 根据部署模式被提交到相应的执行器(executor)上。