00:00
接下来我们来看一看这个雅恩的cluster application啊,大家可以看到它所在的这个包名当中啊,有一个叫做雅啊,咱们毕竟啊,现在是向雅集群来提交应用程序,对吧?所以由雅安这是对的啊,可是它的源码呢,我们这里其实看不到啊,咱们拷贝拷贝以后呢,同学们看一下,在咱们的这个位置,我搜索一下,嗯。在这里面是没有的,那为什么没有呢?是因为咱们的依赖关系当中啊,是找不到它对应的依赖的,那怎么办呢?很简单,拷贝,拷贝以后在我们的下面呢,你把这个扣啊,你改成雅恩就行了,你改成雅安以后,我们稍微等一下,然后呢,你再去什么呢?我们拷贝,然后在这里面去找一下就可以了啊来大家听到这个时候就能够找到啊,那你找到以后,我们回过头来看咱们之前的这个操作,大家还记得吗?咱们在这里面有一个叫做什么呢?他问你是不是继承了Spark application,然后呢,有一个叫Spark,还记得吗?我们可以再去搜索一下啊,咱们叫Spark,咱们的sumit,嗯。
01:07
然后呢,我们在这里呢,给它来啊,咱们来搜索一下,嗯,搜索搜索在我们的这个地方,然后呢,我们再往下啊,咱们往下,呃,往下以后是它了,嗯,咱们点这里啊,那么这里呢,应该是直接就返回了,对吧?OK,在这里面搜索一下,搜索之后大家可以看到就是在我们刚才的这段代码当中,它判断你当前的这个class是不是继承了10SPARK application,然后呢,如果是的情况下,反射来创建它,那就意味着在我当前的这个位置,它会反射创建出来,创建出来以后干嘛了呢?往下它有个叫start,就意味着会走到这个start方法对不对?诶,就走过来了,所以啊,这就意味着在SPA sum当中,它构建了一个对象,诶,所以咱们画图的时候,这边就应该有一个对象出来了,那好,我把这个呢给它拿过来,拿过来以后放到这个位置啊来。
02:04
呃,放到这里面吧,放到这儿啊。然后呢,放到下面。呃,这个地方我们写上啊,咱们这个地方一定要跟他写清楚啊,咱们叫雅恩啊,咱们叫做cluster application,但这个里面呢,我们要再给他画的稍微的,咱们这里给它来放到这边啊,我为什么要放在这边呢?是因为它里面有一个对象啊,这个对象是比较重要的,所以呢,我们的颜色给它标识上一个红色吧,呃,别标志红色的啊,咱们给它标识上我们的这个还是黄色吧,啊黄色嗯,好。然后呢,我们在这里面给他来一个啊,放过来,放过来一个放什么呢?它里面有一个叫做new client啊客户端的感觉对不对,那所以呢,我们这里写上啊,咱们叫client好了,嗯,给它放过来,所以咱们这里呢,给它拉长一些啊,它里面会有一个client,这个呢,我们给它标红啊,它是非常重要的,为什么说它非常重要呢?我们来看一看啊,首先在咱们start的方法当中,它里面会构建一个对象,然后呢,有一个叫client argument,我们点一下点。
03:14
点完以后,它里面会解析咱们的参数,其中什么杠杠class,这个跟咱们前面的这个杠杠class它就有点关系,这里呢,我们用绿色来表示啊,它也是个非常重要的参数,叫18个派对吧,就这个杠杠class,然后这个当中也会有这些参数,这个咱们就暂时不看了啊,咱们说了源码中不可能把每一行代码给大家都讲到,这个不可能我们讲关键性的代码,那好我们后退啊,参数这一块咱们就完成了,然后呢,我们再看这个new,咱们叫client,这个client当中有一个非常关键的属性叫雅恩client,所以啊,咱们这个图形当中,我觉得还应该再给大家扩大一下啊来。把它扩大一下,把这个呢,咱们给大家扩大一下啊呃,扩大以后干嘛呢?我们的目的很简单,我们的目的是为了把这个兰给它扩大一下。
04:07
好,然后呢,给它放过来啊,放过来,放过来以后,它里面包含了一个非常重要的对象,所以咱们这个拷贝,嗯,拷贝这个拷贝以后叫什么名字呢?咱们给大家看到叫雅恩兰,嗯,OK,咱们叫做雅恩啊client放过来诶就是它,然后这个呢,可以再给它稍微的扩大一下,那么好了,大家看到在这个application当中有个client client当中有一个叫ya client。那从字面含义上来讲的话,你叫ya client,那你叫ya的客户端,那你是不是应该对应一个服务啊,所以呢,我们回过头来,我们点它一下,它叫C阳兰点。点完以后有一个叫ern client n PL叫实现对吧,我们再点,点完以后它这边有个对象,这个对象当中咱们往上看有个什么东西啊,叫做RM client,叫做resource manager。
05:06
大家有没有发现我们的这个地方就叫做resource manager,这恰恰就是雅安当中的那个调度节点吧,资源调度节点是不是叫2M呀,所以我们现在呢,把这个图形呢,就得稍微补充一下了,什么意思呀,咱们之前可能没有考虑过这个事情,那现在我们是需要考虑的了啊,来,把这个拿过来。拿过来,我们这里呢,给他来,诶,我学着还是用一个方块比较好一些啊,来,拿过来,拿过来以后他们看啊,我这里呢,给它来,放到这边来,我为什么要这么画呢?是因为啊,我们现在要体现一个集群的概念呢,所以把它放到这边啊。呃,然后呢,我加上一个文字,这边我们写上咱们就叫雅安的啊,Cluster雅安集群咱们放到这就可以了啊。接下来在我们的这个位置,我要放一个东西,咱们给它来啊,放到这边,然后诶拉长,诶我觉得是不是应该跟这个羊对上呢?咱们就叫resource啊,咱们叫做resource manager,咱们这么画其实就可以了啊,这个呢,我们也画一个我们的蓝色吧,这样的话两个颜色对上,那么你对上以后你要干什么对不对,这个事是我们需要知道的啊,就首先你叫做我们的RM client,那顾名思义它就是server呗,那么你是不是要跟它建立连接呢?这个呢,我们先不管它,咱们先给它建立好一个箭头啊,先把它拿过来。
06:30
好了,你把这个呢,先给他拿过来,我先放到这里啊,接下来我们往下来看,那咱们后退后退后退啊后退以后,现在呢,我们的客户端已经创建好了,然后接下来我们点wrong啊,咱们点wrong这个点wrong呢,我们现在打开,打开以后你会发现它上来呢,就有一个叫submit application,这个submit application呢,从字面函义上来讲,它就叫提交啊,它叫提交应用程序,然后呢,这个方法呢,会返回一个叫APPID,这个ID是全局雅的应用ID,那所以你后续当中的什么应用的报告,这些状,这些东西全都可以通过咱们的ID渠道,所以啊,后面其实在对我们当前的应用程序的一些状态呢进行操作,以及它的一些执行报告,这个呢,跟我们的提交可能关系不大了,它是我们执行过程当中的一些监控功能。所以这个咱们。
07:30
暂时不看啊,咱们就看这个叫提交就行了,好了,那我点一下,咱们点叫submit application,点点完以后你看到这没有,同学们,这个地方叫做什么connect呀,叫in,叫start,叫Yan start顾名思义就是客户端启动了吧。那么你客户端启动的话,是不是应该就建立了跟服务器之间的连接啊,是不是这样呢?所以说我们当前就应该建立了跟它的连接,这个箭头就来了,那么好,箭头有了之后,往下看它的这个地方,就create application,告诉我们的resource manager,我要创建一个应用,然后呢,你创建应用的话,是不是应该得到一个响应啊,对不对?诶这个响应呢,会有一个全局ID,哎,就是这样的啊,然后呢,我们后面再往下看,往下看下面呢,再给创建容器的启动环境,以及我的提交环境啊,提交环境一个是容器的环境,一个是我们提交的环境啊,就是这样,那么这个环境封装好之后,你看它怎么了,它叫Yan client,叫submit application,这个就是等同于建立了resource manager的连接,而这个就等同于提交,对吗?
08:47
那么你等同于提交的话,那所以说我们在这个位置的话,来我们写上它就叫submit,叫application,它其实就是这个意思啊好了,所以说我们在中间这个颜色要给它标红吧,那标红一下,嗯,OK,诶标红啊也行吧,就这么着啊来这个时候大家可以看到我们把程序应用就提交给他了,可是你提交给他,你都提交什么东西了呢?诶,我们回过头看它这里面有一个叫。
09:16
APP contestant,那么这里就是我们的提交的环境,我们点一下点点完以后好像里面什么Q啊,包括什么我们的名称啊,以及我们的类型啊,诶好像就是一些配置的参数,对不对,好像可能也没有什么别的一些东西啊,咱们后退。后退以后,除了这个提交的环境以外,还有一个container的启动环境,那么container这个我们大家都知道,在雅安当中它是用来解耦合的,对不对?所以呢,我们这里点一下,点点完以后我们大概的看一看,什么启动环境啊,本地的resource呀,对不对,包括Java的一些配置呀,它里面好像也都有啊,这些东西都是我们的加入虚拟机的一些配置,那么咱们接着往下,往下以后这里依然呢,是我们加入虚机的配置啊,咱们接着往下往下往下往下以后啊,我们会看见一些关键性的点什么点呢?往下走,往下走,同学们,往下走到咱们的这个位置能看懂吗?
10:15
叫做宾加烷,这个宾加烷,那么我们回到咱们前面这个位置,是不是又到这儿来了,大家看。是不是什么B啊,什么加嘛,那你后面是不是又会有类名了,等同于启动了一个什么我们的进程吧,所以我们回过头来,同学们回到咱们的这个地方来啊,它后面跟了什么东西呢?有个叫做Java的配置,不说了,这个叫amx什么意思不知道诶,它是它是个变量,这个变量在这个位置拼接的一大串的这个东西,那么这个叫am class,这个叫user class,这个class其实就是我们传递的参数,那这个am class呢,咱们往上找。就在这儿,在这儿以后大家会发现它这个地方叫,如果是集群模式的话。
11:06
这个am class就是它了,所以咱们拷贝,所以啊同学看,在我们当前的这个位置下来,咱们接着写咱们am class,它应该等于它,等于什么呢?咱们看这个位置应该等于它啊来这是我们的集群模式,那如果不是集群模式呢?如果不是集群模式的话,大家可以看到它的源码当中,他应该走的是这个东西。叫拷贝啊来放过来,这个呢,也叫am class啊,咱们叫am class等于它,所以啊,不管我们是哪种方式吧,它都会有一个专门的类出现,那咱们现在是集训模式嘛,它就叫application play master这个东西拷贝啊,咱们就把它拷贝,拷贝以后它其实就会封装到咱们的这个后面,诶就是这样的,好了,那我们回过头去看一看啊,来,他把咱们这个呀,增加了一个叫做command,这个command就是一个指令,这个指令会被包装一下,包装以后呢,会放到容器当中这个container,然后这个container呢就会直接返回,返回以后它就会随着环境呢发送给我们的resource manager,那也就意味着其实我们所谓的提交是封装的一些指令提交给resource manager,对不对,那么好,那么既然你是一个指令的话,那么resource manager当得到这个指令的时候,他应该怎么办?
12:28
他应该在他的某一个节点中去运行这个指令,对不对,他自己肯定不干活嘛,怎么办,他应该来拷贝怎么成,把这个咱们拿过来。好,咱们放到这里啊,放到这里,然后呢,我看看能不能放两个啊,嗯,放两个应该没问题啊,那这个呢,颜色咱们给它变一变啊,颜色这个咱们就变两个,我们的紫色或者蓝色行不行呢?嗯,变两个蓝色吧,好不好?啊变我们的两个蓝色啊,就是这样好,那这个是我们看看啊,咱们这里来,咱们写上我们叫做node manager啊,咱们叫做node manager,就是两个我们的这个调度的节点啊来,然后呢,这个呢地方呢,我们也给他来啊,咱们叫做node manager,或者我们这么来吧。
13:15
好啊,给他放过来啊,这个有点太太什么了啊,好放这边啊,那这个呢,我们再来往下走点啊,再往下OK放到这。我觉得可以啦,OK,那行,那这个node manager呢,现在就准备要干什么呀,他现在记住啊,来我们这写上这个呢,来往这箭头指向它,指向它以后咱们在这儿呢,给他描述一下吧,那这个我们可不可以称之为叫第一步呢,同学们。把它称之为叫第一步,我们要给它提交了,对吧,然后呢,这个我们写上啊,咱们叫第二步,第二步呢,就是启动啊,咱们叫做启动,刚才不有一个叫做application,咱们的master嘛,对不对,诶就是这样啊,也就意味着我们的第一步呢,是先向我们雅安呢来提交应用,而我们第二步呢,是resource manager得到咱们指令之后呢,让们的某个节点来启动master,而且它启动的方式是用的是并Java,这是一个Java的进程,对不对?OK,同学们,这个咱们先说到这里。
我来说两句