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

相关推荐
智慧医养结合软件开源11 分钟前
规范新增·精准赋能,凝聚志愿力量守护老人安康
大数据·安全·百度·微信·云计算
未来之窗软件服务40 分钟前
数据库优化(九)随机抽选系统数据表 ——东方仙盟
大数据·数据库·数据库优化·仙盟创梦ide·东方仙盟
b***25111 小时前
动力电池自动生产线的工艺逻辑与运维要点
大数据·人工智能
一切皆是因缘际会1 小时前
本地大模型轻量化部署
大数据·人工智能·机器学习·架构
LONGZETECH1 小时前
汽车电气故障诊断仿真教学软件【迈腾380TSI】技术解析
大数据·人工智能·汽车·汽车仿真教学软件·汽车教学软件
无忧智库2 小时前
某集团企业智能体(Agent)操作系统(AOS)基础平台与企业级Agent治理体系详细设计方案(WORD)
大数据·人工智能
KKKlucifer2 小时前
数字安全浪潮下国产数据安全企业发展图鉴
大数据·安全
数字化顾问2 小时前
(121页PPT)IT规划咨询项目规划报告(附下载方式)
大数据
ws2019072 小时前
从芯片到架构:AUTO TECH China 2026聚焦汽车计算新赛道
大数据·人工智能·科技·汽车
小北的AI科技分享3 小时前
API管理的五种路径:五款工具的功能侧写与数据支撑
大数据·人工智能·api管理