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

相关推荐
CyberwayTech7 小时前
赛博威线上营销费用管理:咨询+系统,双轮驱动ROI增长
大数据·人工智能
NOCSAH7 小时前
统好AI:助力企业智改数转的务实实践
大数据·人工智能·统好ai
Sinokap7 小时前
GPT-5.5 上线:OpenAI 把 AI 推向真实办公场景
大数据·人工智能
七颗糖很甜7 小时前
“十五五”气象发展规划:聚焦五大核心任务
大数据·python·算法
科研前沿7 小时前
镜像视界浙江科技有限公司的关键技术突破有哪些?
大数据·人工智能·科技·算法·音视频·空间计算
captain_AIouo7 小时前
聚焦实操赋能,Captain AI系统功能实操指南及价值解读
大数据·人工智能·经验分享·aigc
个微管理7 小时前
小红书新规深度拆解:从被封到破局,2026年矩阵号生存手册
大数据·人工智能·矩阵
2601_956414147 小时前
适合 Reddit 多账号运营的指纹浏览器推荐哪款?
大数据
chaofan9807 小时前
GPT-5.5 深度评测:15项基准测试全优,视觉理解精度跃升 42%
大数据·人工智能·gpt·计算机视觉·api
2301_776045237 小时前
估值和市值的区别(股票与加密资产)
大数据·人工智能