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

相关推荐
于先生吖7 分钟前
家政派单小程序定制厂家
大数据·小程序
摘星编程24 分钟前
AI Agent 觉醒时刻:从单点工具到多Agent协作系统的范式革命
大数据·人工智能·自动化
Francek Chen24 分钟前
【大数据存储与管理】NoSQL数据库:05 NoSQL的三大基石
大数据·数据库·分布式·nosql
老王谈企服32 分钟前
流程型制造业生产优化,未来将如何被大模型技术重构?2026智造深研:实在Agent驱动端到端生产闭环
大数据·网络·人工智能·ai·重构
大大大大晴天️1 小时前
Flink技术实践——Flink资源扩缩容方案演进
大数据·flink
2601_956139421 小时前
航空航天品牌策划公司哪家强
大数据·人工智能·python
千里念行客2401 小时前
扬电科技落子“草原云谷”:一场算电协同的西部突围
大数据·人工智能·科技·安全
灵途科技1 小时前
灵途科技加速推进具身智能产业协同,持续拓展空间感知技术应用边界
大数据·人工智能
b***25111 小时前
动力电池气动点焊机:破解高能量密度电池制造的焊接难题
大数据·制造
王苏安说钢材A3 小时前
酒钢拓展多款高端不锈钢品种规格
大数据