00:00
那接下来我们看第三块内容啊,Flink任务调度相关的知识,那么说到任务调度啊,咱们必须知道一个东西什么。图啊。Link里面是不是有一个图的概念在里面,是不是有。四种图啊,一个流图一个,作业图一个。执行图啊,其中最核心的是哪一个啊,执行图还有一个物理执行图啊,物理执行图,那么前面三个都是有对应的一个具体的类,最后一个不是一个具体的类啊,最后一个是一个。任务执行之后,整体看起来是一个什么样子,对吧?啊这种。那什么叫流图啊?是最开始解析咱们写的代码啊,就有什么算子什么先后顺序,对吧?啊生成了一张图啊生成一张图。它表示啊,咱们一个拓扑结构,那什么叫作业图呢。
01:03
什么叫作业图啊?是不是把流图做一个优化,什么优化?操作链的优化吧,对不对?Operator train,把那个关系为one to one并且并行度相同的算子啊,把它串到一起啊,串到一起啊。那什么叫?直行图。是不是在作业图的基础上把它的并行化给展示出来,你并行度是几,它就画几个点,对不对啊,就更具体的更详细的,呃,这么一个图啊。那么他咱们调度的时候依据啊,就是这张图,依据就是这张。那么最后呢,物理执行图啊,物理执行图是什么呢?呃,是我们根据作业图进行调度分发之后啊。Task执行的时候,看起来的一个全局的看起来的一个效果啊,叫它并没有具体的某一个类来对应这个东西啊,并没有啊,这个比较特殊一点啊,所以我们说不是一个具体的数据结构。
02:14
好了,那我们来看一个,再回顾一下图的样子来,咱们这边呢,是官方的一个案例,对吧,他这边调用了一些扇子什么呢?呃,是不是S啊读取再往后呢。做了一个flat map之后做了击败,做了萨,做了print,说白了是不是一个out?对吧,我好了,那我们看一下这个图。这个图最开始的流图,而是每个算子一个节点呢?每个算子一个节点对吧?哎,然后呢,中间有一个连接线对吧,就它们之间的关系是怎样的啊连接线。另外还有什么能看到什么并行度对吧?啊,那作业图呢,是不是经过操作链的优化,优化之后是不是某些东西就。
03:10
合并在一起了,串在一起了,对吧?啊,发生了不可描述的关系对吧,啊,融合了,水乳交融是吧,那么。以前我们看这个图可能是比较粗糙的,但接下来我们要看啊。首先这每一个黄色的点呢,它的名字是不是变了。对不对,这是第一个细节啊,第一个细节,第二个细节是不是多了这种东西啊。是吧,第三个细节,这个的名字是不是改了。对吧。啊,有三个细节啊,同学们。当然这个算是零号细节,好吧,串在一起,零号细节。那其他都一样的吧,啊,这是我们要知道的,那再往后作业图转化成执行图,它怎么体现呢?比如说这个并行度为二,它是不是展开两个呀,对吧,所以我们说是一个并行化,那有什么区别呢。
04:15
黄色的圈圈,名字是不是变了?对吧?啊,其实这个也好记啊,你是什么图,这个圈就叫什么ver,对吧,Ver是顶点的意思啊,顶点它像不像一个点呢?对吧?啊,这是作业点,这个是不是执行点啊。啊,什么图就是什么点,这个名字好记好,那包括这个边的名字是不是变了,其实命名也有规范了,你是作业图是不是作业边了。直行图是什么?直行边那牛图呢?是不是牛鞭啊啊,不是牛啊,是牛啊牛牛鞭对吧,鞭,这个鞭啊。一个边缘对吧,一条边三角形的一条边这种啊,所以这个名字虽然多虽然长,但也好记啊,也好记,另外一个前面作业图多出来,这个叫什么。
05:09
中间结果集对吧?哎,上面这个单词是什么意思啊,中间的意思对吧?中间的中间的中间的结果集变成了什么。中间的结果分区啊,是变成了结果分区啊,对吧?啊。其实呃,应该来讲,应该是先。变成这个。是不是还是叫。前面叫数,中间数据集对吧,在作业图叫中间结果。其中中间结果又可以进一步划分为中间结果的。分区中间结果的分区,因为你是并行化的嘛,是把分区给体现出来了呀啊。啊,就这么几个区别啊,就这么几个区别,那最终的物理执行图呢,就是咱们实际执行之后整体来看啊。
06:06
啊,这个是不是具体的task在跑了呀,对吧,所以黄色的点我们会叫它task,那么输入这些边变成了什么呀?呃,首先是input channel是不是变成输入通道啊,呃,通道之后最终它又封装叫做input g啊。啊,不是get啊get啊get。就明智的区别,那么包括上面。上面之前叫中间结果分区对吧,呃,就每一个具体的这种。呃,中间结果分区,它变成了更具体的什么呢?中间字分区。中间指分区是吧,那整体呢,叫结果分区啊,就名字发生了一些变化嘛,啊发生一些变化。那么这个就是咱们对这个图简单的回忆啊回忆。
07:00
那接下来我们后面这一块要干什么?每张图的生成逻辑,它的节点怎么封装呢?它的边怎么封装呢?当然这一块可能就有点。有点多,有点晕了,到时候会啊,那么大家只要把握住一点,我们看的逻辑,要么看它的顶点怎么变化的,要么看它的边怎么变化的,要么看中间结果怎么变化的,就这几个东西而已啊,这是咱们的逻辑主线啊。那这边呢,咱们还得了解几个概念对吧?呃,首先看这个。我先截个图,让大家对应着看啊,会舒服一点啊。先看牛图的一些概念啊,来在牛图里面它有什么东西啊。是不是流节点还有流边啊对吧,对应流节点流边对吧。流节点流边,那这里面是不是有并发度啊?哎,这里是不是有并发度啊,是不是有入边出边啊,什么叫入边啊,前面这条边是不是就是它的入。
08:06
对吧,后面这一条是不是就是它的出对吧。啊,就这个意思,那么这个边呢,就表示连接两个点啊,这这条线这个边对吧?啊这个很好理解,好你别看这个后面概念很多很长,你对着图来看就很快了,来看作业图。好作业图。来首先我们看job vertu对吧,这个是什么?是不是这个黄色点的名字啊,对吧,我们这个是不是经过优化后啊。就一些之前的牛节点,把它可能这里串在一起,不管串不串,最终一个黄点,黄黄圈表示一个作业的点顶点,对吧,就像咱们画图一样,是不是有一些顶点呢,对吧。好,那么它的输入是什么呢,同学们。
09:01
哎,大家注意这边为什么讲输入输出啊,咱们你对着图,比如说咱们看中间这个这个顶点的输入是什么。是不是作业编啊?作业边是输入吧,输出不是边啊,输出是什么。中间数据集对吧,Data set数据集这个是出啊,所以你看这这些概念,你不要光看文字啊,你要对着图来看啊,就好理解了啊。啊,那同样的这个中间结果集表示的是不是一个顶点的输出啊,啊,这个废话对吧,即经过咱们这个算子处理之后的数据集啊。那么他的发送者是谁呀?啊,现在我们换一个维度来考虑问题了,同学们。咱们现在关注这个结果集,它的输入是谁。它的输入就是个顶点啊,对他来讲他是输入对吧,那这个数据集的输出是谁啊。
10:03
输出是边对吧,Consumer就输出嘛啊。啊,所以你看这些话对着图来看啊,以每一个为参考系来看它的出跟入啊。再看一个边,我们现在在该看边的对吧,比如说我看这个边边它代表的是一条数据传输通道,对吧,就像一个水管一样,把水接过来啊,那么它的入是什么。入是中间数据集对吧?出是什么。出就是一个作业点,作业顶点对吧?哎。啊,所以你不用去看这些具体文字,你记一张图就够了啊。这个就是一些概念啊,概念,那么接下来同样的道理,我相信接下来大家看起来没什么难度了啊,知道套路了啊,来看作业图的一些概念啊来。
11:00
Execution job,这是什么?执行的作业点嘛,是不是这个黄圈呢,是不是就是黄圈对吧?啊,我们这个是整体啊。就是算整个算子。整个扇子是不是带着带有教的这个关键字啊,那么具体的每一个子。一个并行实例对吧,比如说两个,这是不是有两个,那每一个叫什么叫作业点。这是不是两个概念就搞完了?整体叫执行作业点,那具体的每一个叫。执行点啊,执行点啊。是一个并发子任务对吧?啊,那么同样的每一个概念你都会研究一下它的输入跟输出,那么对于一个执行点来讲,它的输入是。执行边对不对,它的输出是。中间结果分区对吧?哎,你不要看这个名字长啊,你对着图就很好记的,中间结果分区啊好。
12:05
接下来看另一个概念,看蓝色这一块,首先整体来讲他们叫什么?中间结果啊,中间结果。那么具体的每一个叫中间结果分区,对吧,表示的是一个输出的分区啊。那么同样的。这个东西它的输入是什么。执行点对吧,执行点它的输出是。直行边对吧,啊,直行边好,再往后看。我们看直行边看前面这个舒服一点啊,直行边表示的是什么呢?表示的是。某个执行节点的输入对吧?啊,这个没关,其实它是不是就是一个管道对吧,也是一个管道,那么它表示是后面这个的输入啊输入,那么它的来源是什么。
13:05
中间结果分区对吧,它的输出给谁啊,我们说的是不是给那个执行点呢?哎,执行顶点啊。那么它一前后都只能是一个啊,对吧,一个管道是不是对应的,一一对应啊对吧。好,最后还有一个概念。这个是啥呢?这个表示的是某一个执执行点的一次执行。对吧,表示某一个的一次尝试啊。啊,为什么要讲究这一点,对于同一个点来讲,比如说我是不是可能失败的同事又跑了一遍,那这种这两次之间它的ID是不一样的,是用来区分这个。这个了解一下就行啊,主要是这些组成结构,这些名字啊,那么现在呢啊,大家就可以给别人介绍介绍这些东西对吧?啊,那后面这个咱们也不用看了,都废话啊,咱们有那张图,前后关系清清楚楚明明白白啊。
14:10
那么物理执行图呢?来我们说了,是task部署之后形成的一个整体的一个图,对吧,看起来的一个图,它不是一个具体的数据结构,不是一个具体的类啊。那。我们也把这个截个图啊。哎。啊,往下一点。来,首先这个task是什么呀。是不是被调度分配过来的一个。什么?Task,那这个task对应的是什么呢,同学们?是不是算子经过操作类优化串在一起?串在一起之后的某一个并行实例,对不对,或者说子认路之间串起来的一个整体。
15:07
子任务串起来之后的一个整体对不对,一个task跟咱们之前呃,Flink上课的时候讲的概念是不是一样。啊,这个叫task啊,Task好,那那这中间它是不是有一些名称变化对吧,它的一个,比如说那之前那些中间结果及中间数据集,中间结果什么,结果分区是不是变成了什么。整体叫结果分区,那么每一个叫结果子分区,少了一个什么?中间这个词对不对,它无非是把中间这个词给干掉,把中间这个词干掉,另外把它变成分区,然后另一个叫子分区这样子。那这个边呢,它统一变成了输入管道啊,输入通道还有一个输入get get啥意思啊。
16:07
大门呢?啊getaway啊大门是吧,大门。输入门啊,输入大门是吧。就像一个门一样啊,那么后面呢啊,这个没没没啥讲的对吧。呃,这两个就是一个包含关系对吧,啊,套娃一层套一层啊没了啊。好,这个就是一些概念的理解啊,这些概念。
我来说两句