【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生成

相关推荐
持续进阶的开发者3 小时前
工作中常用Elasticsearch命令汇总
大数据·elasticsearch·搜索引擎
盛世宏博北京3 小时前
多协议温湿度传感器技术解析及系统集成方案设计
大数据·人工智能·温湿度传感器
谁似人间西林客4 小时前
工厂大脑:深度融合AI能力的智能化制造运营管理平台
大数据·人工智能·制造
杰克尼4 小时前
天机学堂项目总结(day1~day2)
大数据·jvm·spring·elasticsearch·搜索引擎·spring cloud·mybatis
简简单单就是我_hehe4 小时前
高吞吐、低成本日志系统方案ClickHouse + Filebeat/Fluentd
大数据
永霖光电_UVLED5 小时前
让光学钟从实验室走向现实
大数据·汽车·制造
璞华Purvar5 小时前
2026酵母行业PLM的解决方案有哪些?璞华易研PLM赋能酵母行业数字化研发升级
大数据·人工智能
金融小师妹5 小时前
基于机器学习的黄金定价模型:风险不确定性下降后的结构重估
大数据·人工智能·深度学习·svn·能源
数数科技的数据干货6 小时前
官宣!数数科技正式更名为 ThinkingAI
大数据·人工智能·科技·agent
葫三生6 小时前
《论三生原理》系列:文化自信、知识范式重构与科技自主创新的思想运动源头?
大数据·人工智能·科技·深度学习·算法·重构·transformer