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中常用的数据结构:JobGraph:JobGraph是Flink作业的执行计划,它描述了作业中各个算子之间的依赖关系,以及算子的并行度、数据分配等信息。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 端生成的,也就是说我            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-03 21:37:54
                            
                                153阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在具体执行环节中,考虑并行子任务的分配、数据在任务间的传输,以及合并算子链的优化,将逻辑流图转换为物理数据流图。 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阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            flink的JobGraph生成源码分析一、JobGraph简介JobGraph是基于StreamGraph生成的,主要的工作就是将多个符合条件的StreamNode链接chain在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。 那么本节的主要问题是: 下面的过程可能用到该图片怎么判断节点是否可以连接在一起,即1和2怎么连接多个StreamNode怎么构建Jo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-20 16:26:28
                            
                                70阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            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            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-04 22:49:00
                            
                                35阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            首先,本文假定读者对流计算思想已经有基本的认识、对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利用了“惰性求值”的概念,只有            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-10 07:18:17
                            
                                89阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            说明:本文为《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对其进行相            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-20 09:11:20
                            
                                73阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            flink:JobGraph生成过程分析
    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阅读