![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Flink
文章平均质量分 93
瑶琴遇知音
我是一名萌萌哒程序员
展开
-
【Flink源码】JobGraph构建过程
这里不能用 StreamNode.id 来代替,因为这是一个从 1 开始的静态计数变量,同样的 Job 可能会得到不一样的 id,如下示例的两个 job 是完全一样的,但是 source 的 id 却不一样了。书接上回,execute 方法中通过 getJobGraph 将 Pipeline 转换为 JobGraph,下面来看一下 getJobGraph 源码。为所有节点生成一个唯一的 hash id,如果节点在多次提交中没有改变(包括并发度、上下游等),那么这个 id 就不会改变,这主要用于故障恢复。原创 2022-11-07 11:24:32 · 312 阅读 · 0 评论 -
【Flink源码】JobManager源码之启动WebMonitorEndpoint
在【Flink源码】JobManager 启动流程 一文中,笔者分析了 JobManager 的启动流程,并讲到 JobManager 启动了 ResourceManager、Dispatcher 和 WebMonitorEndpoint 三大核心组件。本文将就其中 WebMonitorEndpoint 启动过程的源码进行探究首先,我们先要讲述一下 WebMonitorEndpoint 的主要功能:WebMonitorEndpoint 里面维护了很多 Handler,如果客户端通过 flink run原创 2022-11-06 22:44:40 · 398 阅读 · 0 评论 -
【Flink源码】JobManager启动流程
在一文中,笔者后来发现谬误颇多,且随着 Flink 版本的更迭,部分方法实现方式已发生较大改变。因此,思虑再三决定针对 JobManager 相关源码根据最新的 Flink 版本(1.17)单独成文。原创 2022-11-06 22:43:54 · 1045 阅读 · 0 评论 -
【Flink源码】Flink心跳机制
在一文中,我们在讲述 TaskExecutor 启动流程时,在 TaskExecutor 构造方法中讲到 TaskExecutor 维护了与 ResourceManager 和 JobMaster 的心跳服务同样在 ResourceManager 启动时也维护了与 JobMaster 和 TaskManager 的心跳接下来我们针对 ResourceManager 与 TaskManager 的心跳交互流程来深入探究 flink 的心跳机制。原创 2022-11-06 22:43:08 · 754 阅读 · 0 评论 -
【Flink源码】StreamGraph构建过程
前面我们说到 StreamGraph 最终由 StreamGraphGenerator 类生成其构造函数只是实例化了一些属性,之后调用了一些 setter 方法,设置了如状态后端、保存点路径等的配置,真正生成 StreamGraph 的是之后的 generate 方法(getStreamGraphGenerator(transformations).generate())原创 2022-11-06 22:42:17 · 473 阅读 · 0 评论 -
【Flink源码】再谈Flink程序提交流程(下)
书接上回,在一文的结尾我们完成了 JobManager 申请 slot 的探究按照 Flink 程序提交流程,接下来 TaskManager 即将启动我们来继续往下看。原创 2022-11-06 22:41:30 · 629 阅读 · 0 评论 -
【Flink源码】再谈Flink程序提交流程(中)
书接上回,一文中我们已经将程序从客户端提交给了 ResourceManager接下来我们就去 ResourceManager 中一探究竟。原创 2022-11-06 22:40:39 · 709 阅读 · 0 评论 -
【Flink源码】再谈Flink程序提交流程(上)
前面在一文中,我们着重探讨了 StreamExecutionEnvironment 的 execute 方法是如何提交一个任务的,当时为了省事,我们是以本地运行环境为例但是在实际的运行环境中,Flink 往往是架设在 Yarn 架构下以 per-job 模式运行的因此,为了还原真实场景下 Flink 程序的提交流程,我们有必要探讨 yarn-per-job 提交流程首先,让我们回顾一下 Flink 任务提交流程。原创 2022-11-06 22:38:33 · 1132 阅读 · 0 评论 -
【Flink源码】Flink程序启动的那些事儿
我想您一定曾经很好奇几个问题那就是 Flink 程序启动的时候究竟发生了什么?我们将用户程序提交上去之后它又是如何调用它的?本文就是为了解决您的这些疑惑在 Yarn 下 per-job 模式提交流程如下图。原创 2022-11-06 22:37:20 · 635 阅读 · 0 评论 -
【Flink源码】从StreamExecutionEnvironment.execute看Flink提交过程
相信大家对这一行代码都不陌生,其作用是执行 Flink 程序,相当于是一个总开关。很难想象,那么复杂的 Flink 架构,那么复杂的 Flink 程序仅仅需要这简单的一个函数就能启动,其背后究竟是怎样的过程?原创 2022-11-06 22:36:35 · 1205 阅读 · 1 评论 -
【Flink源码】从StreamExecutionEnvironment说起
本系列是针对 Flink 源码进行的一系列探究过程,旨在通过 Flink 源码全面地、详细地了解 Flink 原理根据 getExecutionEnvironment 可以自动获取可执行环境,那么具体过程究竟是怎样的呢?接下来我们从 StreamExecutionEnvironment 说起。原创 2022-11-06 22:35:27 · 857 阅读 · 0 评论