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

相关推荐
小袁进化之路2 分钟前
黎跃春讲 AI 智能体运营工程师:从工程架构到可运营系统的完整实战详解
大数据·人工智能·架构
独立站建站C_2Cshop19 分钟前
Linkedln内容营销该怎么做?
大数据·人工智能·外贸·独立站·跨境电商独立站
机器视觉的发动机1 小时前
波士顿动力机器人技术全解析从四足Spot到人形Atlas的机器人革命
大数据·人工智能·深度学习·机器人·视觉检测·机器视觉
汽车仪器仪表相关领域1 小时前
经典指针+瞬态追踪:MTX-A模拟废气温度(EGT)计 改装/赛车/柴油车排气温度监测实战全解
大数据·功能测试·算法·机器学习·可用性测试
BUTCHER51 小时前
elasticsearch时间搜索
大数据·elasticsearch·jenkins
霑潇雨1 小时前
Flink转换算子——filter
java·大数据·flink
萤丰信息1 小时前
智慧园区:以技术赋能,构筑安全便捷的现代化生态空间
大数据·人工智能·科技·安全·智慧城市·智慧园区
weixin199701080161 小时前
B2Bitem_get - 获取商标详情接口对接全攻略:从入门到精通
java·大数据·算法
freepopo1 小时前
天津商业空间设计:本地团队的美学落地方案 [特殊字符]
大数据·人工智能·python
数琨创享TQMS质量数智化2 小时前
国有大型交通运输设备制造集团QMS质量管理平台案例
大数据·人工智能·物联网