【Flink精讲】Flink任务调度机制

Graph 的概念

Flink 中的执行图可以分成四层: StreamGraph -> JobGraph -> ExecutionGraph -> 物理执

行图。

  • StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。
  • JobGraph: StreamGraph 经过优化后生成了 JobGraph,提交给 JobManager 的数据结构。主要的优化为,将多个符合条件的节点 chain 在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。
  • ExecutionGraph: JobManager 根据 JobGraph 生成 ExecutionGraph。 ExecutionGraph 是JobGraph 的并行化版本,是调度层最核心的数据结构。
  • 物 理 执 行 图 : JobManager 根据 ExecutionGraph 对 Job 进行调度后,在各个TaskManager 上部署 Task 后形成的"图",并不是一个具体的数据结构。

WordCount举例

java 复制代码
public static void main(String[] args) throws Exception {
// 检查输入
final ParameterTool params = ParameterTool.fromArgs(args);
...
// set up the execution environment
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// get input data
DataStream<String> text =
env.socketTextStream(params.get("hostname"), params.getInt("port"), '\n', 0);
DataStream<Tuple2<String, Integer>> counts =
// split up the lines in pairs (2-tuples) containing: (word,1)
text.flatMap(new Tokenizer())
// group by the tuple field "0" and sum up tuple field "1"
.keyBy(0)
.sum(1);
counts.print();
// execute program
env.execute("WordCount from SocketTextStream Example");
}

StreamGraph在Client生成

分区器

JobGraph在Client生成

ExecutionGraph在JobManager生成

相关推荐
天草二十六_简村人7 分钟前
ES索引检索课程名称时,同时支持模糊搜索和精准搜索
大数据·后端·elasticsearch·搜索引擎·全文检索
sld16821 分钟前
S2B2B系统:多级分销与渠道管理的数字化利器
大数据·人工智能
irizhao22 分钟前
高质量数据集从0到1系统化建设步骤
大数据·人工智能
BOB-wangbaohai36 分钟前
软考-系统架构师-未来信息综合技术(三)
大数据·软考·系统架构师
byte轻骑兵42 分钟前
时序数据库选型指南:以Apache IoTDB为例看国产时序数据库的优势与实践
大数据·数据分析·apache·时序数据库·iotdb
大力财经43 分钟前
从南京、济南到京津冀,抖音生活服务助力区域探索差异化增长路径
大数据·人工智能
qq_12498707531 小时前
基于微信小程序的照片社交平台(源码+论文+部署+安装)
java·大数据·微信小程序·小程序·毕业设计·计算机毕业设计
郑州光合科技余经理1 小时前
中台架构实战:同城O2O系统二次开发与部署指南
java·大数据·开发语言·前端·后端·架构·php
铭毅天下1 小时前
从软考开始考 Elasticsearch 说开去 ......
大数据·elasticsearch·搜索引擎·全文检索
鸿乃江边鸟2 小时前
Spark Datafusion Comet 向量化Rule--CometScanRule分析
大数据·spark·native