00:00
好,那。咱们接下来。看什么呢?我们回到组件创建的那个地方,哎,这个地方先保留一会儿再接着看,好吧,啊,一会儿再接着看。Part,我们把思路啊,把那些套娃的东西现在抛掉啊,反正。我们知道这当时做了什么。创建和启动这个之前看的是这里对吧?哎,那我们说这里面我把笔记完善一下啊,我们说。呃,会创建和启动job master啊。这个就是咱们刚才看的一大坨得到的一句结论对吧,一句结论,那接下来咱们该往后看了吧,看什么。你看他是不是开启启动resource manager对吧,前面是不是创建好了呀。对吧,前面做了创建嘛啊。
01:01
好。在这里面我们点。呃,那么我们会发现是不是一个RPC的服务点start。RBC,我们说通信相关的对吧,那这个时候有的同学可能就思路就断掉了,那该怎么办,是不是找对应它组建的on大的方法呀,对吧?好,那我们来看resource manager是一个什么类型啊,它创建出来。呃,在上面在上面。呃,是不是resource manager类型啊。对吧,我们是不是到这个类里面去找on start来进来。On。Start。是不是有啊。好,核心逻辑对话叫启动resource manager服务啊,这个就没那么绕了,他直接就是启动对应的服务了,但是他启动的时候也做了一些事情啊。那这里面呢,我看看要不要现在给大家讲。
02:05
呃,讲了吗?哎,来启动的时候,我们来研究一下他做了什么事儿,好吧,哎这边有几个细节咱们要知道啊,首先他做了一个初始化,对吧,初始化,然后呢。这是不是很熟悉啊?是不是又开始选利,然后再去start对吧,其实他还是套了一点点的啊,那这个初始化这一块,咱们要了解一个事情,它初始化做了啥。是不是找它的实线了。对吧,这是一个抽象类嘛,那我们找哪一个呢。是不是啊?对不对啊,这个可不是leader选举服啊,Leader选举服务我们说是真的弄啊,那这这个不是啊。好,初始化里面是不是又封装了一层啊?
03:04
啊呃,这边套的还好,同学们套的不是很深啊。那这里面做了啥?点又来到了一个接口,没事找直线。哎,这边只有一个可选,点开你看。是不是什么什么resource manager的一个driver,对吧,Driver,那咱们是不是应该找雅安啊。对吧。好找。诶。是没有啊,没有对吧。呃,那说明什么?这个初始化方法应该是他们。共用的对吧,所以我们在抽象类里面找一找。是不是有啊,哎,在它的抽象父类里面啊。抽象的resource a manager driver初始化好了,这边调用前面这些校验的,还有副值的不用看了,直接看这。
04:07
初内部初始化吧,Internal是内部的意思对吧,啊点。啊,抽象了,这个时候就要到具体的子类里面看了,啊,他就是这样,哎,就像父子对吧,哎附子结果呢,他先来一个。哎,先来这,然后再跳到这儿,然后再跳回来,再跳到这儿,因为有些公用的方法,它放在腹类里面嘛。好了,废话少说,直接往里追啊,同学们直接往里追呀。好在这里面,嗯,咱们就知道两件几件事情啊,在这个初始化方法里面。啊,你看这是什么。创建resource manager客户端,这个是什么?Resource manager?是雅安的还是弗link,大家注意。
05:02
这个是雅恩的。这个是雅恩的啊,咱们还记得架构图里边。怎么申请的资源吗。呃,这个比如说是am,它里面是不是有一个自己的RM啊,是不是由他向雅安的resource manager去申请啊,哎,那他怎么申请的呀,就是通过创建对方的客户端。他是不是就可以通过这个客户端去告诉他呢。对吧,啊,这边就这个做这个事儿。好,那这边是不是创建了resource manager的客户端,然后呢。初始化启动对吧,好。我们说创建雅恩的。Resource manager的客户端。
06:01
并且初始化和启动啊。这是这一块内容,那后面还有啊,没完呢,是不是注册了一个am啊,啊注册一下这个无所谓,往下看还有。雅安的节点叫什么?雅安的小弟叫什么not manager对不对?哎,他同样的也需要去小弟对吧,为什么呢?他是不是得去容器提起来之后去起task manager是吧?所以这边。土豆。创建。雅恩的。Note manager的客户端。并且初始化。和启动,哎,说白了是不是这两件事儿啊。超。那咱们总算看完了初始化回退,呃。
07:04
回回回回,直接无脑回啊。好了,是不是回到最开始这里的是start里面啊。那初始化知道做了啥事吗?总结一下。初始化做了什么事?创建了。雅安的RM和NM的客户端对吧。怎么样初始化并启动?这个你看他套了这么多层,我们的结论就这么一句话,你记住就行了,那么那个过程呢,如果你呃有时间有兴趣再去看就行了啊,咱们知道做了这个事,接下来是不是启动它自身的服务了,通过一个什么。选举服务对吧。
08:02
通过选举。选举服务什么?启动resource manager?好点啊,这一步大家很熟了,CTRL加H找到。Stand alone的领导选举啊,再找start,应该有一个咱们说要眼熟的方法叫。那这个是什么?授予。对吧,说白了是不是找到领导啊,对吧,找到领导找领导啊。那我们说它的时间是不是分组件呢?现在我们该看啥呢?Resource manager对吧,里面还有其他的,大不了看其他的对吧,挨个看呗,好,先看一下这个通用的resource manager点。哎,果然有对吧,哎,所以不用呃到具体类型看了。
09:04
那么这里面呢,我们看一下。做了啥事儿?嗯。这边好像没什么对不对啊,没有什么类似什么执行啊start这种东西,那么后面这里呢。有啥吗?也没啥吧。那后面这里更没啥了。哎,对,咱们是不是得看一下confirm leadership对吧。这是什么?确保对吧。诶,看这。好,往里点又开始了啊。接下来找谁?是不是找是真的弄啊。还是老套路嘛,同学们,领领导选举服务啊。
10:04
好,这里面你会发现啥。是没东西啊啊,不用确信对吧,哎,说白了,这边它的启动不再做什么幺蛾子了,对不对,他就正常的根据这个呃。呃,就前面那个启动起来就得了呀,是不是。没有像dispat一样,它启动的时候还要去启动别人,对不对啊。好了。呃,我确认一下啊,我确认一下。咱们之前那个叫什么呢。哦。
11:04
同学们,咱们刚才是不是漏了一个小东西对吧?呃,咱们看的不应该,呃,就是来到具体组件里面的grand leadership,呃,看的不是这个确保,确保里面我们看到是不是一个空的方法。啊,里面没东西啊,那其实应该在这儿藏的还挺深,对吧啊。是不是尝试接收领导,好应该在这儿啊,差点给漏掉了啊,那这里面呢。套啊,你看又有一坨。呃,这里面呢,做了个判断是否有领导啊对吧?嗯,有的话,然后根据一个ID获取,获取完之后打印。打印完看是不是阻塞的做一些处理对吧,呃,这做一些设置,那其实核心逻辑。你看其实应该在这里对吧?啊,应该这里是except,我我当看差了,看成串以为是一些呃,异常的忽略啊,其实应该在这啊。
12:10
启动服务吧。啊,终于啊,千辛万苦,同学们。这是什么?心跳服务。启动心跳服务,跟谁的心跳啊?跟谁呀,是不是跟小弟啊?跟task manager心跳啊,小弟是不是得实时跟你汇报啊,他还活着对不对?哎,就像你,就像你,如果你结婚了之后,晚上出去喝点酒对吧?啊,你是不是得定时汇报啊,啊,十点了怎么还不回来,10:10你到哪了对吧,对吧,是不是得实时的汇报,诶,我去哪,我跟谁在一起对吧?哎,那同样的咱们这个resource manager flink内部的,他还需要跟谁打招呼啊?
13:03
跟谁交互啊?真的。来,我们看看里面有哪一些组件就知道了呗,是不是这两个啊,Job其实应该说什么job master吧,是吧。Master是不是,是不是master找他要要东西了呀。Jm job master呢,找自己的resource manager啊,说我需要多少资源嘛,哎,然后他是不是这边也得交互,实时的知道你满足了没有,对吧,就像你喂小孩,你是不是得。刚出生的宝宝,你是不是得经常去看他,饿的没有,拉屎了没有对吧?难受的没有,压到了没有对吧?你是不是得时刻的当宝一样供着是吧,啊好。好,那还有一个job master,诶,咱们知道这个就行了啊,你看这些细节咱们就能挖出来了啊,啊这个具体就不看了,然后这个东西大家注意。
14:08
这边有个东西叫什么。Slot manager这种叫什么槽管理器,是不是这个东西现在大家知道在谁里边。不啥,他不是吧,这个代码是谁执行的。也就是说,比咱们之前学的再深入一层,咱们的resource manager内部真正管理潮资源的是谁呀?是这个slot manager。啊,这个就是体现差异化的地方了,别人不知道这个东西,你知道对吧,那就是一一种降维打击,同学们啊,降维打击啊,该让大家重点记得,我会强调一下啊,那这些东西大家最好留个印象好吧,Slot manager。
15:00
啊,下面呢,呃,On leadership这是空的对吧?啊,这没有这就没了啊,这是咱们对应文档的哪哪一块啊,1.3.7的初始化跟启动啊,这两个内容啊,文档我很少去翻,为什么?因为这是我写的,我知道该讲哪,所以我很要去翻,那么我的文档每一步跳转都写的很详细的。呃,这边给大家说明一下啊,像这种这个是类名,那里面这个是方法名啊,就告诉大家去哪里看,那不重要的逻辑,我是用省略号注掉了,那么像这种没写的是啥意思啊。像我比如说这个没写表示啊,它跟上一个是一样的类,也就是说比如说这个方法,它也是在resource manager这个类里面的啊,这是我一个写法,好吧,我没有每个都标啊,没写的你就找上一个的类名就行了啊,那么大家根据这个啊,呃,套娃你就不怕他套娃了啊。
我来说两句