flink的变量名、方法名之类的命名是真的好啊Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序 的拓扑结构。JobGraph:StreamGraph 经过优化后生成了 JobGraph,提交给
本文从源码出发,详细介绍了flink如何对StreamGraph进行优化进而构建JobGraph对象,并在最后给出了自己的总结。
推荐
原创
2023-02-12 12:43:24
713阅读
Apache Flink的架构流程@TOCApache Flink的架构流程Apache Flink 是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架。实现了鱼与熊掌兼得的实时计算框架,它既包含了如Storm一样的低延迟的实时计算又完成了如Spark Streaming高吞吐量保证 exactly-once 语义。 其实现流批一体,本身的流式框架实现批处理是将批处理当作特殊
原文链接: 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
1847阅读
1.常用的数据结构定义Flink中,JobManager内部维护了多个数据结构,用于存储和管理作业的元数据信息。以下是JobManager中常用的数据结构:JobGraph:JobGraph是Flink作业的执行计划,它描述了作业中各个算子之间的依赖关系,以及算子的并行度、数据分配等信息。JobGraph是由客户端提交作业时生成的,并由JobManager进行解析和管理。ExecutionGrap
.一 .前言二 .数据结构2.1. JobVertex2.2. JobEdge2.3. 数据实例三 .代码浅析3.1. 入口3.2. StreamingJobGraphGenerator 属性3.3. StreamingJobGraphGenerator#createJobGraph3.3. StreamingJobGraphGenerator#setChaining 一 .前言StreamGr
如果我们要了解Java报表的发展史,首先研究一下Java语言的发展历程。1995年5月Sun Microsysems公司推出Java程序设计语言和Java平台。这种简单的、跨平台的、面向对象的、分布式的、健壮的、安全的语言出现后,全世界的目光都被这个神奇的语言所吸引了。正式这种伟大的革命,基于Java语言的各种软件和工具如雨后春笋般出现。 在报表软件市场JReport、St
转载
2023-10-26 11:43:44
36阅读
目录JobGraph的详细构成JobVertex Intermediate DataSetJobEdgeJobGraph和StreamGraph最重要的区别就是:对满足chainable条件的算子进行了chain!StreamGraph 经过优化后生成了 JobGraph,提交给 JobManager 的数据结构。 主要的优化为:将多个符合条件的节点 chain 在一起作为一个节点,这样
首先,本文假定读者对流计算思想已经有基本的认识、对Flink的API已经熟练使用、对Flink的设计思想已经有初步了解,本文着重介绍从api到flinkjob的详细过程。 Streaming API 通常情况下,如果想要使用flink进行并行计算,开发者会把自己的业务逻辑抽象成流式计算的模型,使用f ...
转载
2021-10-13 11:03:00
199阅读
2评论
目录ExectionGraph执行图ExecutionGraph的核心对象1、ExecutionJobVertex2、ExecutionVertex3、IntermediateResult4、IntermediateResultPartition5、ExecutionEdge6、ExecutionExecutionGraph具体生成流程小结1、Flink客户端提交JobGraph给JobManag
flink driver 这边将驱动代码处理为 JobGraph的一些流程, 以及处理方式Flink 中使用了很多 异步的处理方式, 因此 代码调试, 还是有
在具体执行环节中,考虑并行子任务的分配、数据在任务间的传输,以及合并算子链的优化,将逻辑流图转换为物理数据流图。 StreamGraph——JobGraph——ExecutionGraph逻辑流图(StreamGraph) 这是根据用户通过 DataStream API编写的代码生成的最初的DAG图,用来表示程序的拓扑结构。这一步一般在客户端完成。 我们可以看到,逻辑流图中的节点,完全对应着代码中
继前文Flink 原理与实现:架构和拓扑概览中介绍了Flink的四层执行图模型,本文将主要介绍 Flink 是如何将 StreamGraph 转换成 JobGraph 的。根据用户用Stream API编写的程序,构造出一个代表拓扑结构的StreamGraph的。以 WordCount 为例,转换图如下图所示:StreamGraph 和 JobGraph 都是在 Client 端生成的,也就是说我
flink的JobGraph生成源码分析一、JobGraph简介JobGraph是基于StreamGraph生成的,主要的工作就是将多个符合条件的StreamNode链接chain在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。 那么本节的主要问题是: 下面的过程可能用到该图片怎么判断节点是否可以连接在一起,即1和2怎么连接多个StreamNode怎么构建Jo
注: 所有内容都基于Flink 本地模式JobGraph 的生成是从 LocalExecutor.java. execute 方法开始的// 本地执行调用 Pipeline 是 StreamGraph 的父类
@Override
public CompletableFuture<JobClient> execute(Pipeline pipeline, Configuration c
Apache Flink作为国内最火的大数据计算引擎之一,自身支持高吞吐,低延迟,exactly-once语义,有状态流等特性,阅读源码有助加深对框架的理解和认知。Flink分为四种执行图,本章主要解析JobGraph的生成计划本章及后续源码解读环境以生产为主:运行模式:OnYarn,HA模式:ZK,Mode:Streaming,关键逻辑解释我会备注到代码上(灰色字体)勿忽视。Flink会生成Jo
文章目录1. 指标 reporters1.1 flink-metrics-dropwizard1.2 flink-metrics-graphite1.3 flink-metrics-influxdb1.4 flink-metrics-prometheus1.5 flink-metrics-jmx1.6 flink-metrics-slf4j1.7 flink-metrics-statsd1.8
Flink Graph早期,Batch和Stream的图结构和优化方法有很大的区别,所以批处理使用OptimizedPlan来做Batch相关的优化,使用StreamGraph表达流计算的逻辑,最终都转换为JobGraph,实现了流批的统一。流计算应用的Graph转换 对于流计算应用来说,首先将DataStreamAPI的调用转换为Transformation,然后经过StreamGraph-&
注:所有内容都基于Flink本地模式JobGraph的生成是从LocalExecutor.java.execute方法开始的//本地执行调用Pipeline是StreamGraph的父类@OverridepublicCompletableFuture<JobClient>execute(Pipelinepipeline,Configurationconfiguration)throws
原创
2021-02-07 14:47:15
695阅读
客户端提交作业图作业图(JobGraph)是Flink的运行时所能理解的作业表示,无论程序通过是DataStream还是DataSet API编写的,它们的JobGraph提交给JobManager以及之后的处理都将得到统一。本篇我们将分析客户端如何提交JobGraph给JobManager。流处理程序提交作业图在前面讲解Flink的核心概念的时候我们谈到了Flink利用了“惰性求值”的概念,只有