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

相关推荐
jiaozi_zzq9 分钟前
2026 高职财务专业就业方向与进阶指南
大数据·数据分析·证书·财务
roman_日积跬步-终至千里1 小时前
【大数据架构:架构思想基础】Google三篇论文开启大数据处理序章:(数据存储)分布式架构、(数据计算)并行计算、(数据管理)分片存储
大数据·分布式·架构
CHrisFC2 小时前
中小型第三方环境检测实验室的数字化破局之选——江苏硕晟LIMS
大数据·运维·人工智能
小北方城市网2 小时前
GEO 智变新篇:质效双升 + 责任共生,打造 AI 时代本地商业长效增长引擎
大数据·人工智能·python·数据库架构
神算大模型APi--天枢6462 小时前
自主算力筑基,垂域模型破局:国产硬件架构下的行业大模型训练与微调服务实践
大数据·人工智能·科技·架构·硬件架构
2501_940975802 小时前
AI降重:当学术写作遇上智能算法,如何守住原创底线?
大数据·人工智能
CNRio3 小时前
Day 55:Git的高级技巧:使用Git的worktree管理多个工作目录
大数据·git·elasticsearch
汤姆yu3 小时前
基于python大数据的地震数据可视化分析系统
大数据·python·信息可视化
阿猿收手吧!3 小时前
【Elasticsearch】定义索引结构的核心 -- Mapping
大数据·elasticsearch·搜索引擎
风途知识百科3 小时前
太阳能杀虫灯——风吸式物联网杀虫灯
大数据·人工智能·物联网