Apache Flink的架构流程@TOCApache Flink的架构流程Apache Flink 是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架。实现了鱼与熊掌兼得的实时计算框架,它既包含了如Storm一样的低延迟的实时计算又完成了如Spark Streaming高吞吐量保证 exactly-once 语义。 其实现流批一体,本身的流式框架实现批处理是将批处理当作特殊
转载 2024-03-16 10:17:37
29阅读
本文从源码出发,详细介绍了flink如何对StreamGraph进行优化进而构建JobGraph对象,并在最后给出了自己的总结。
推荐 原创 2023-02-12 12:43:24
736阅读
1.常用的数据结构定义Flink中,JobManager内部维护了多个数据结构,用于存储和管理作业的元数据信息。以下是JobManager中常用的数据结构:JobGraphJobGraphFlink作业的执行计划,它描述了作业中各个算子之间的依赖关系,以及算子的并行度、数据分配等信息。JobGraph是由客户端提交作业时生成的,并由JobManager进行解析和管理。ExecutionGrap
转载 2024-04-25 06:06:06
43阅读
.一 .前言二 .数据结构2.1. JobVertex2.2. JobEdge2.3. 数据实例三 .代码浅析3.1. 入口3.2. StreamingJobGraphGenerator 属性3.3. StreamingJobGraphGenerator#createJobGraph3.3. StreamingJobGraphGenerator#setChaining 一 .前言StreamGr
转载 2024-03-27 13:24:41
49阅读
继前文Flink 原理与实现:架构和拓扑概览中介绍了Flink的四层执行图模型,本文将主要介绍 Flink 是如何将 StreamGraph 转换成 JobGraph 的。根据用户用Stream API编写的程序,构造出一个代表拓扑结构的StreamGraph的。以 WordCount 为例,转换图如下图所示:StreamGraph 和 JobGraph 都是在 Client 端生成的,也就是说我
在具体执行环节中,考虑并行子任务的分配、数据在任务间的传输,以及合并算子链的优化,将逻辑流图转换为物理数据流图。 StreamGraph——JobGraph——ExecutionGraph逻辑流图(StreamGraph) 这是根据用户通过 DataStream API编写的代码生成的最初的DAG图,用来表示程序的拓扑结构。这一步一般在客户端完成。 我们可以看到,逻辑流图中的节点,完全对应着代码中
转载 2024-03-26 09:59:52
40阅读
原文链接: http://wuchong.me/blog/2016/05/10/flink-internals-how-to-build-jobgraph/ 继前文Flink 原理与实现:架构和拓扑概览中介绍了Flink的四层执行图模型,本文将主要介绍 Flink 是如何将 StreamGraph 转换成 JobGraph 的。根据用户用Stream API编写的程序,构造出一个代表拓扑结构的St
转载 2019-03-12 08:51:35
1861阅读
flinkJobGraph生成源码分析一、JobGraph简介JobGraph是基于StreamGraph生成的,主要的工作就是将多个符合条件的StreamNode链接chain在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。 那么本节的主要问题是: 下面的过程可能用到该图片怎么判断节点是否可以连接在一起,即1和2怎么连接多个StreamNode怎么构建Jo
Flink Graph早期,Batch和Stream的图结构和优化方法有很大的区别,所以批处理使用OptimizedPlan来做Batch相关的优化,使用StreamGraph表达流计算的逻辑,最终都转换为JobGraph,实现了流批的统一。流计算应用的Graph转换  对于流计算应用来说,首先将DataStreamAPI的调用转换为Transformation,然后经过StreamGraph-&
转载 2024-02-04 13:13:34
85阅读
Apache Flink作为国内最火的大数据计算引擎之一,自身支持高吞吐,低延迟,exactly-once语义,有状态流等特性,阅读源码有助加深对框架的理解和认知。Flink分为四种执行图,本章主要解析JobGraph的生成计划本章及后续源码解读环境以生产为主:运行模式:OnYarn,HA模式:ZK,Mode:Streaming,关键逻辑解释我会备注到代码上(灰色字体)勿忽视。Flink会生成Jo
转载 2024-08-22 16:08:50
50阅读
注: 所有内容都基于Flink 本地模式JobGraph 的生成是从 LocalExecutor.java. execute 方法开始的// 本地执行调用 Pipeline 是 StreamGraph 的父类 @Override public CompletableFuture<JobClient> execute(Pipeline pipeline, Configuration c
首先,本文假定读者对流计算思想已经有基本的认识、对Flink的API已经熟练使用、对Flink的设计思想已经有初步了解,本文着重介绍从api到flinkjob的详细过程。 Streaming API 通常情况下,如果想要使用flink进行并行计算,开发者会把自己的业务逻辑抽象成流式计算的模型,使用f ...
转载 2021-10-13 11:03:00
230阅读
2评论
客户端提交作业图作业图(JobGraph)是Flink的运行时所能理解的作业表示,无论程序通过是DataStream还是DataSet API编写的,它们的JobGraph提交给JobManager以及之后的处理都将得到统一。本篇我们将分析客户端如何提交JobGraph给JobManager。流处理程序提交作业图在前面讲解Flink的核心概念的时候我们谈到了Flink利用了“惰性求值”的概念,只有
说明:本文为《Flink大数据项目实战》学习笔记 1.执行计划GraphFlink 通过Stream API (Batch API同理)开发的应用,底层有四层执行计划,我们首先来看Flink的四层执行计划如下图所示。通过Stream API开发的Flink应用,底层首先转换为StreamGraph,然后再转换为JobGraph,接着转换为ExecutionGraph,最后生成“物理执行图
1 引言2 JobVertex3 JobEdge4 IntermediateDataSet5 StreamConfig6 StreamGraph 到 JobGraph6.1 StreamingJobGraphGenerator6.2 Chain Operator6.3 Chain Strategy6.4 Connect1 引言用户通过Stream API编写的程序,F
转载 2024-03-25 05:04:34
111阅读
概述Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。StreamGraph:即根据用户编写的Stream API而生成的最初的作业拓扑图,表示程序的拓扑结构。JobGraph:StreamGraph会经过作业链优化生成JobGraph,提交给 JobManager 的数据结构。主要的优化为,
转载 2024-01-28 07:11:35
131阅读
1 引言2 处理SubmitJob请求3 构建ExecutionGraph4 总结1 引言前面两篇文章,我们介绍了StreamGraph 和JobGraph的生成,它们都是在Client客户端创建的。在生成JobGraph后,Client客户端会通过Rest / RPC向Dispatcher发送提交作业的请求,Dispatcher在收到SubmitJob请求后,会启动JobManager对其进行相
flinkJobGraph生成过程分析 1、JobGraph是由StreamGraph转换而来,当client将StreamGraph提交后,job启动前会先完成转换,统一的转换入口如下:2、StreamingJobGraphGenerator类StreamingJobGraphGenerator的职责就是将StreamGraph转换成JobGraph
转载 2024-03-04 17:23:40
61阅读
Flink执行计划第一层——StreamTransformation》 构造了列表+链表的结构;《Flink执行计划第二层——StreamGraph》 转化第一层为图结构;接下来,就该转化 StreamGraph 为 JobGraph 了。StreamGraph 继承了抽象类 StreamingPlan 并实现了 getJobGraph 方法:/** * Gets the assembled
转载 2024-04-29 10:44:01
57阅读
注:所有内容都基于Flink本地模式JobGraph的生成是从LocalExecutor.java.execute方法开始的//本地执行调用Pipeline是StreamGraph的父类@OverridepublicCompletableFuture<JobClient>execute(Pipelinepipeline,Configurationconfiguration)throws
原创 2021-02-07 14:47:15
731阅读
  • 1
  • 2
  • 3
  • 4
  • 5