00:00
接下来我们梳理一下,在一个任务或者说一个job作业在提交的过程当中,我们前面提到的这四大组件到底是怎么样去交互,怎么样去协同工作的,呃,大家总结一下啊,这个过程到底是什么样的呢?通过这个图可能大家会看的比较清楚,首先就是我们的应用这一端,首先我是不是要提交这个应用啊,啊,就是像我们在这个,呃,我我这里边有一个web UI对吧?或者说我们在这个命令行里边要要用那个link wrong啊去做一个这个提交,那我们是提交给谁了呢?大家看第一步提交应用提交给的是。Dispatch对吧?啊,直接是提交给的是dispatch啊,就这个分发器,它就是我们整个的这个接接入点啊,提交给他,然后接下来这个dispat呢。他去启动一个job manager,然后提交应用,直接把这个应用转交给他。啊,大家看这个整个这个图,这其实是一个比较高层级的一个,呃,就是任务提交的流程啊,就是比较抽象,它并没有具体到说在某种模式下就一定是这样提交的是吧?啊,它就是整个抽象的流程大概是这样,那大家看这里边他说到了一个就是我要先去启动这个job manager,为什么这样呢?
01:16
哎,这就是因为大家想想我们当前这个,呃,就是做这个任务提交的过程当中,是不是应该是一个job对应着它有一个job manager啊,所以大家要划分开啊,我们在做那个,呃,就是做这个配置集群配置的时候,我们指定的那个job manager,它其实更像是指定的drop manager对应的那个节点,对不对,更有点像是这个就是机器啊,我们这个点的一个配置。而这里边我们所指的这个job manager,这就是什么?这就是针对每一个job,然后去做管理的那个那个进程了,对吧?所以大家看这个是稍微有一点区别的啊,我们这里边是针对每一个这个进程来说的,所以这是有了这个drop之后,有了应用之后,我才去启动这个东西。
02:03
然后这个招manager提起来之后啊,那大家想他不是已经拿到我们的所有的那个作业图了吗?已经知道dag里边每一步做什么操作了吗?所以他是不是他他要做一个转换,能够知道最后到底该怎么执行,对吧,那是不是所有的信息招manager都能搞定。他都知道对吧,啊,他知道我当前这个任务到底有,呃,当前这个作业啊,到底有多少个任务啊,并行度是多少对吧,到底有多少个任务,一共需要多少个slot,他都能分析出来。然后接下来他就既然我知道我需要多少了,那是不是向resource manager发起请求,需要这么多slot对吧,请求支援,那resource manager这边怎么办呢?哦,大家看啊,他其实在很多资源管理平台里边啊,就大家的那个观点,如果要是在STEM模式下的话,那是不是当前我那个就是test manager应该都已经提起来了呀。
03:00
但是大家看如果在是有这个资源管理平台的时候,它不是现成的test manager,而是怎么样呢?诶我这里是不是收到请求之后,我要用资源了,我才去启对应的task manager对吧?大家看就是你用多少启多少嘛,对吧?哎,所以接下来我就去启动task manager,然后他manager是不是就是向他去注册slot呀。对吧?我起来之后,比方说一个test manager里边有四个slot啊,我就向这个result manager报告报告我这里边有四个可用的slot,你尽管分配任务吧,啊,那么result manager一看,哦,那前面这个job manager他说我现在需要六个slot,对吧?那我是不是就向两个task manager发起这个指令就可以了,对吧?我就要求你们好,你们俩给我总共提供出六个slot来,那接下来task manager向drop manager提供slot,那是不是drop manager就可以给他分配对应的任务了?分配下去,接下来就是他执行的过程了,对吧?啊,所以大家看就是整个的流程来看的话,就是dispatch,它的这个角色只在一开始。
04:06
就是这里大家看啊,启动提交应用的时候,是不是只在这儿做一个转交啊,然后之后是不是跟他就没关系了,然后后边呢,就是分配资源的时候。这里面是不是涉及到这个resource manager啊,只要分配完资源是不是也就跟他没关系了。啊,对吧,然后具体在做这个调度分配任务的时候,跟job manager有关系,那具体执行任务的时候是不是又是只看task manager就可以了,对吧?所以这里面就是一步一步啊,最后执行任务就是task manager之间互相传递数据,干活就完事了,这就是整体来讲啊,任务提交的流程。
我来说两句