作为一个软件堆栈,Flink是一个分层的系统。堆栈的不同层构建在彼此之上,并提高程序表示的抽象级别:
- 在runtime层以JobGraph的形式接受一个程序。JobGraph是一个通用的并行数据流,包含有消耗和生成数据流的任意个任务。
- DataStream API 和 DataSet API 通过单独的编程过程生成 JobGraphs。
- JobGraph根据Flink中提供的各种部署选项 (local/standlone/yarn) 执行。
- 捆绑在Flink中的库和API生成 DataSet 或 DataStream API 程序。