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

相关推荐
Evaporator Core1 天前
通信专业技术资格考试备战系列(一):通信基础知识核心要点解析
大数据·tornado
freepopo1 天前
比较好的别墅装修策略
大数据
实战产品说1 天前
2026出海产品的机会与挑战
大数据·人工智能·产品运营·产品经理
2501_926978331 天前
从Prompt的“结构-参数”到多AI的“协作-分工”--底层逻辑的同构分化
大数据·人工智能·机器学习
教男朋友学大模型1 天前
平衡AI自动化与人工干预
大数据·人工智能·自动化
渣瓦攻城狮1 天前
互联网大厂Java面试实战:核心技术与场景分析
java·大数据·redis·spring·微服务·面试·技术分享
Elastic 中国社区官方博客1 天前
Elasticsearch:通过最小分数确保语义精度
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
狮子座明仔1 天前
DeepImageSearch:当图像检索需要“侦探式推理“,现有AI还差多远?
大数据·人工智能·语言模型
追风少年ii1 天前
CosMx文献分享--空间同型聚类对癌细胞可塑性的抑制
大数据·数据挖掘·数据分析·空间·单细胞
2501_926978331 天前
近10年中国社会发展路径总体视角图--双层架构的出现
大数据·人工智能