【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 分钟前
品牌 AI 智能监测与自动化采集系统
大数据·人工智能·自动化
SelectDB32 分钟前
从实时入库到实时可用:Apache Doris 5.0 增量计算场景与实践
大数据·数据库·开源
xiaoyunxuexibiji43 分钟前
企业电子招投标如何实现全流程线上管理?从招标立项到评标定标
大数据·人工智能
汇像AI无人实验室1 小时前
植物合成生物学迎来爆发期:如何用自动化重塑基因元件筛选?
大数据·人工智能·自动化
千桐科技2 小时前
大模型落地不“纸上谈兵”:qKnow专业版用原生MCP为AI装上“手脚”
大数据·人工智能·qknow
小天源2 小时前
智叟云集系统适用场景与业务实践
大数据·人工智能
考拉讲支付2 小时前
分账系统怎么对接?从零搭建平台分账体系的完整技术指南
大数据
财税数字化2 小时前
日韩泰票据与欧美发票混合入账怎么选?开灵科技与海外厂商优劣势对比
大数据·人工智能·科技·ocr·软件选型·票据识别
数字新视界2 小时前
信创机房动环监控的核心功能与智能运维管理实践
大数据·物联网·信息可视化·信息与通信·一体化机柜
renhongxia13 小时前
RAG检索增强生成:打通大模型与外部知识的通道
大数据·人工智能·算法