00:00
组件通信我们已经给大家讲完了啊,在讲解的过程当中,我们看到了一些源码,并且呢,我们把图形给大家画出来了,呃,我们不要去追究它的细节啊,因为咱们是去用这个框架,而不是去研究它底层的实现,自己写一个框架对不对?所以啊,我们了解到它的通信原理啊,比方说net呀,包括它的这个什么E啊,这种方式咱们大家知道原理就可以了啊好,这个呢我们就告一段落,咱们接着往下来讲,接下来我们要讲的是应用程序的执行,那么应用程序的执行说白了就是我们driver线程呢,它来执行咱们的main方法,然后呢去把环境创建出来,去执行咱们的业务逻辑,对不对,这是我们接下来要给大家看到的,那么首先我们在这个学习这个应用程序的执行的过程当中,会看到什么,RDD的依赖,还有阶段的划分,任务的切分,以及任务的调度,还有任务的执行,这个呢,我们分别要通过源码呢,给大家稍微的看一看好不好,同学们咱们一点一点来啊,那首先。
01:00
应用程序的执行,它必不可少的,需要先把环境先准备好,这个叫Spark contest,那么我们接下来呢,把这些东西啊,咱们画个图,咱们一块来看看啊,嗯。咱们这边有一个概念,这个概念我觉得这样吧,我们在下面的咱们来说一下来。咱们写上啊,咱们叫做核心对象吧,嗯,咱们写上叫核心对象。好吧,那这个核心对象呢,首先我们把这个拿过来啊,拿过来。然后呢,在这里呢,我们给它来写上一个啊,放过来,我们写上叫Spark context,哎,就是那个核心对象,这个核心对象呢,我们稍微的要注意一下,所以呢,我们回过头来把咱们这个呢拿过来啊。好了,那么我们来看一看啊,当你构建我们核心对象的时候,我们点点完以后,大家可以看到,当他去new的时候,它下面的这些内容呢,就会不断的去初始化,对不对,我们就看看会有哪些内容,其实啊,里面的东西包含的还是挺多的啊呃,咱们找一找,找一找,嗯,往下找,往下找,往下找,诶找到这儿了,找到这儿以后,它里面全都是私有的一些属性,那么其中有一个叫Spark康复啊,这个没说的,这是我们整个的一个环境配置对不对,这里呢,我们给它来一个这个颜色啊,好这诶,我们这个也给他个颜色吧,好不好,嗯。
02:25
好了,那接下来往下,下面呢,我们有一个这个啊,咱们叫做诶Spark,因为所以这个呢,我们的需要,因为我们的一些基础的环境呢,其实都是由他来完成的啊,咱们之前这个叫Spark叫做环境配置,对吧,它是一个配置,这是我们的环境啊environment嘛,对不对,这个颜色呢,我们给它稍微的换一换啊换一换,嗯,好,接着往下,下面还有什么呢?咱们看看啊,就是我们看一些关键的性的对象啊,其他的我们暂时不管它了,这里面还有一个叫schedule back end,所以来拷贝拷贝,拷贝以后把它拿过来叫schedule back end,就是它,那这个是个什么东西呢?这个其实还是比较重要的,为什么这么说呢?因为我们说了叫通信的后台,这个叫schedule的,叫调度,这个back end叫后台,叫调度后台,后台是用来做通信的,所以呢,也就意味着我们的那个executor恰恰要跟他来做通信,为什么呢?咱们那个exor大家还记得吗?也有个叫back in的呀,所以这两个。
03:25
题是用来做通信用的啊,所以我们这里可以说一下啊,咱们写上咱们叫后台通信啊来。后台通信啊,或者叫通信后台可能会更好一些啊,叫通信后台好了,那么我们这里呢,说一下咱们的字体呢,稍微是不是可以变大一些呢,有点太小了是吧,那个它变得稍微的大一些啊。好,那这个呢,我们算了吧,这个太大的话,看着也不太舒服,还是变回去吧,嗯,给他一个13啊。好,那我们继续啊,咱们叫通信后台,那么我们接着往下,往下以后有个叫task schedule,这个task schedule顾名思义就是用来做调度任务的,对不对,所以呢,我们来拷贝啊,咱们接着往下走,往下走以后呢,诶放过来,然后呢,我们拷贝叫task schedule,这个是什么意思呢?咱们叫任务调度,或者叫做叫任务调度器吧,叫任务调度器,嗯。
04:17
好了,专门用来调度咱们的所谓的任务的,对不对?好,再来下面呢,是这个东西,咱们叫DA schedule,那顾名思义叫有向无环图的调度,咱们这个叫任务调度,对不对?但其实还有另外一个调度,就是我们的作业调度啊,所以来拷贝啊,这个呢,我们放到这儿啊,这个呢,我们称之为叫做什么呢?叫做,其实这个我想想它应该叫做阶段咱们的调度,因为咱们是划分几个阶段吧,对吧,Dag它划分几个阶段来调度,所以这么话说可能会更好一些,嗯,颜色呢,给它来变一变啊,咱们变一变。好啦,咱们接着再往下。呃,往下确认确认这个什么心跳啊,包括这些东西好像啊,就没有那么的,就是非常重要的这个一些属性了,我们刚才给大家看的这些东西相对来说是比较重要的,像这个呢,我们就叫配置对象了啊,咱们叫配置对象,然后呢,这个呢,我们叫做什么呢?环境对象,咱们之前说过了啊,比方通信环境什么我们的RPCV对不对,哎,咱们叫做环境对象啊。
05:21
好了,再往下吧,我们再往下看看啊,如果还有的话,咱们再说啊,嗯,好像没有了,后面基本上都是对它的一些属性进行赋值的,对不对,基本上是没有了啊,所以呢,我们有这么几个对象,咱们了解一下他们的作用就可以啊,比方说第一个咱们叫做配置对象,咱们的基础配置,包括环境配置不都是在这里面了,对不对,然后这个环境里面包含了一些什么样的内容呢?我们想想啊,它主要诶我们可以,我们可不可以这样呢,加点文字性的描述在里面呢,咱们看看啊来,嗯。呃,我在这个地方呀,咱们可以给他在这儿啊,咱们说明一下,来点一下。咱们在这儿呢,给他说明啊,就是我们这个,这个呢,就是我们的基础啊,咱们叫基础,咱们叫基础环境配置,基础的一个环境配置啊,就是它了,那这个是什么呢?这个环境对象啊,它就是我们的一些通信环境啊,包括一些我们的基础环境啊,这个呢,其实是一种配置,这个叫做环境,它是一些我们通信环境,包括一些我们的嗯通信。
06:21
啊,咱们通信的环境啊,咱们的啊,比方说我们的RC对吧,这样的东西就是它了啊那这个呢,是什么东西呢?这个呢,咱们说一下这个比较特殊,为什么说比较特殊呢?叫通信后台啊,它主要用于主要啊用于和我们的之间进行通信,进行通信。好了,那么接下来再往下,那下面的顾名思义就简单了呀,这个呢,应该是什么东西啊,就是调度任务的啊来,它主要用于我们的任务的调度啊,咱们叫任务的调度,就是这样的啊,比方说你的任务发给谁呀?诶就是由他来完成的,而我们这个呢,叫DA schedule,它主要用于什么呢?咱们叫阶段的划分啊,阶段的划分以及我们叫任务的切分啊,你到底分几个,我们的任务就是由他来完成的,所以啊,它在底层呢,会有这样的一些对象存在啊,所以我们先有个大概的印象就OK了,同学们。
我来说两句