概述
本文是一篇翻译文章,原文在这里。
本文从软件设计层面介绍了flink的模块划分和组成。
flink的基本组成
作为软件堆栈,Flink是一个分层系统。堆栈的不同层构建在彼此之上,并提高它们接受的程序表示的抽象级别:
- 运行层(runtime layer)以JobGraph的形式接收程序。JobGraph是一个通用的并行数据流,具有消费和产生数据流的任意任务。
- DataStream API和DataSet API都通过单独的编译过程生成JobGraphs。DataSet API使用优化器来确定程序的最佳计划,而DataStream API使用流构建器。
- JobGraph根据Flink中提供的各种部署选项执行(例如,本地,远程,YARN等)
- 与Flink捆绑在一起的库和API生成DataSet或DataStream API程序。这些是用于基于逻辑表的查询,用于机器学习的FlinkML和用于图形处理的Gelly。
总结
本文介绍了flink的系统组成,并对各个层次进行了简要介绍。