00:00
好了,同学们,我们接下来呢,给大家讲一下咱们Spark的源码,呃,咱们之所以讲源码呢,是因为咱们之前啊给大家讲完Spark啊,那么把一些基本的原理啊和核心的一些API呢,给大家讲完了,但是呢,很多的一些细节啊,大家可能不容易记住,那么这样的话,我们通过源码的方式呢,把之前讲过的一些知识点呀和原理呢,咱们稍微的过一下,让大家呢,对我们的之前讲解的内容呢,理解的更加深刻一些,如果总是光去讲的话,这个大家肯定印象不深,对不对?所以呢,我们通过源码的方式呢,去加深我们的印象会更好一些好不好,同学们,但是这个源码的讲解啊,对于我们现在来讲,我们需要呢,讲几点内容吧,就是分几大块,也不可能全看一遍,你要说把一个框架的源码全看一遍又不太现实啊,所以呢,我们这里呢,咱们这么来啊,首先一啊,咱们先给大家讲我们最开始的什么,咱们叫做环境。说的简单点,就是环境的准备啊,环境的准备,那这里环境的准备它包括几个方面,第一个啊,就是我们的,比方说雅恩雅,你要启动之后,大家想想,就是你们启动之后,咱们会有个什么东西啊,咱们叫做driver,然后呢,我们这里呢,是我们的driver,我们的exec,对吧,我们要看看这些环境是怎么能够创建出来,能够起到作用的,这个是我们需要关心的。那么还有就是我们是如何将咱们的应用程序提交到咱们的集群当中呢?所以啊,这些我们应该都应该看得到,所以呢,我们应该有个submit的概念叫提交。
01:35
啊,提交我们的OB啊,我们是如何提交的呀?诶,这个事儿我们是需要知道对不对,所以这个环境准备好,然后提交的过程我们搞明白了,那其他的我们再说啊,OK,那么我们来继续啊,这个东西我们来环境准备好以后,那么环境当中会有很多的什么节点啊,Driver啊,Ecuor,那么他们是如何来完成通信的,就是如何来完成数据交互的,这个我们也需要先考虑清楚啊,那么我们写上咱们叫通信。
02:03
对吧,咱们叫组件吧,啊,咱们叫做组件的通信,那这个组件的通信就包括我们的driver啊,比方说它和我们的这个exor啊,它如何通信,还有我们的executor,它和我们的driver如何通信,还有呢,就是我们的executor,它和咱们的executor他们如何通信,其实啊,我们也不可能说全都看一遍,有个大概的知道它的一个原理,其实就够了,好,那么除了组件通信以外,现在呢,环境有了组件既然能通信了,那么开始要去完成咱们的作业的执行了,那么这个时候就涉及到我们作业的执行啊,来,咱们叫作业。嗯,或者叫应用程序的执行是不是也可以啊,因为咱们的一个main方法里面写的不就是一个application应用程序嘛,对不对?呃,所以我觉得呀,这个是不是不用放在这儿啊,咱们在这个地方叫应用程序执行是不是会好一些呢?那么应用程序的执行呢,就包括了什么呢?包括了咱们阶段的划分,还有任务的切分,以及任务的调度,还有呢,任务的执行,所以啊,它分这么几个环节啊,就是阶段,但是我们想想啊,其实除了这个以外,还有咱们之前学过的就是RDD啊,它的依赖关系。
03:21
那咱们的这个叫依赖关系对不对?呃,还有呢,就是我们总是说呀,他们之间形成了一个血缘这样的东西对不对,但这个其实还依然呢,是我们所谓的依赖啊,这个咱们知道就可以了啊,然后呢,我想想,那其实有这个依赖就够了啊,这么别的就先不管它吧,嗯。应用程序的执行呢,分这么几项啊,那行,那么当我们去执行咱们的任务之后呢,其实中间有一个比较影响性能的地方,就是我们那个沙uffle,那么这个沙uffle呢,它就涉及到什么呢?我们沙Le,因为沙Le它分两个阶段嘛,一个呢是用来写,一个用来读,对不对,所以啊,我们说一下咱们叫杀uff否的原理啊,和它的执行过程啊,好还有一个就是杀否写咱们叫做写磁盘。
04:07
还有一个就是沙uffle,咱们叫做什么呢?咱们叫做读取磁盘,哎,有一个写,有一个读啊这个概念啊,好了,那其实别的呢,就差不多了啊,嗯,那然后我们再来说啊,说什么呢,我们之所以用沙Le呢,是因为咱们内存呢,咱们是有限的,你Spark它是基于map reduce开发的一个计算引擎框架,它优化了其中的计算过程,它中间采用了内存来处理我们的数据,所以内存的管理呢,对于他来讲其实也是非常重要的啊,咱们叫内存的管理,这个呢,我们来简单的说一下,叫做内存的分类啊,这个呢,我们到时候来看一看啊,还有呢,我们内存的一些基本配置吧,咱们叫内存的一些配置啊。所以我们看源码的话,咱们就分这么几个项目呢,给大家看一看就行了,其实我们最后的这个内存看不看到无所谓,把前面的这个这个几个地方呢,咱们通过源码呢,跟大家去讲一下,记住啊同学们,我们给大家讲源码并不是为了让大家把这些源码记住说啊,那在哪一行,它有了什么逻辑代码,不是这样的,我们是为了对咱们之前讲过的那些概念和原理呢,加深印象,来证明我们之前的讲解是正确的,对吧?咱们讲了很多的原理,但这个原理对不对,有没有什么问题不知道,来看过源码之后,你应该理解更加深刻。
05:32
好不好,同学们,咱们就按照这么一个顺序给大家去讲解吧啊。
我来说两句