00:00
那么接下来呢,咱们简单的对整个对塔差的执行流程,通过看源码来直观的认识,包括呢,有哪些地方,呃,就是咱们可以做优化的地方,其实从源码上也可以看得出来啊,总体比较简单,咱们不会讲的过细啊,主要是让大家从整体上来了解,那么先看一下总体的流程啊,这个是别人呃总结出来的,当然这个没什么东西啊,也没有人会去问你这个原理,那大概分为几个啊,一个是黄色的是job的执行部分。呃,每个task在执行是蓝色的啊,整个框架就是绿色包裹,那我们首先整体有一个认识啊,咱们的整个作业它是要经历几个阶段的,哪几个呢?初始化准备贴分。调度还有什么呢?事后的一些处理,它整个模型还是比较清晰的编程模型,那我们看初始化可能是读取配置啊等等一些。
01:04
动作啊,那。准备动作呢,就看不同的插件,它可能需要不同的准备,比如说我事先是不是要先清空一下路径啊,啊,你你路径底下的数据啊,清空哪个表的数据啊等等,看你怎么定义了切分,切分呢可以说是咱们比较重要的一个逻辑,还有一个调度啊,这两个是比较重要的,那我们的切分你咱们之前也讲了,它是不是可以切分成task。对吧?另外呢,咱们还记得咱们一开始给大家出的一道思考题,诶,也就是说我一共切成100个task,那么我的并发射程20,那请问需要几个组对吧?需要几个task group,那这个东西呢?咱们在七月份的时候就有有所体现啊,那当然这个嗯,没什么用,就是让你知道一个执行情况而已,从日志你也能看出来,那么。
02:04
在这中间呢,包括咱们对并发的设置有哪些参数,怎么来优化啊,在这一块咱们会呃,重点去给大家介绍一下,那另一块是调度了,那调度这一块呢,其实呃,咱们主要是看它整个流程从正的读取。对吧,再读取完进入到channel channel再出来到writer,这这是一个task的执行过程,那么在这中间呢。他是。有一个重要的东西就是限速啊,是reader到channel这里,我是怎么实现的一个限速,咱们大概有个了解就行了啊。没有太多东西啊。那这一块绿色自然就是一个框架了,从reader到channel到writer嘛,对吧,所以是框架执行部分啊。
03:00
好,那么。这个是咱们先总体有个认识,这个很简单啊,没什么难的。那我们顺便看一下一个程序的入口吧,咱们看源码怎么去看,那我们已经是从GIHUB上面下载了一份那个data叉的源码,在idea打开了啊。那还记得我们程序入口是什么,是不是data差点PY呀,对吧,那我们就搜呗,呃。也不用搜,我直接告诉你在哪,这边这么多个模块在哪里呢?肯定不在插件里面,不在Rita跟Rita里面,那么抛开插件来讲,咱们比较核心的就是看这个东西,Core拈块啊,它比较核心逻辑都在这里面,那其他都是插件实现的一些功能和呃,固定套路的一些方法而已,对吧?那在这里面呢,你咱们s RC main里面有个并目录啊,这边它是写好了一个data塔,差点PY,你也可以在你安装好的程序去看,因为我虚拟机已经关了,那我就在这看就好了啊,那在这一边呢,咱们我直接看重点啊,可能一大堆脚本嘛。
04:16
大概了解了解有什么,这一块是什么。是不是解析咱们的参数啊,其实咱们是可以指定一些参数啊,比如说杠杠TVM啊,对吧?啊,指定模式啊,啊指定参数啊,指定reader,指定writer这两个咱们是用过的嘛,对吧?嗯,这边倒是没有什么太多复杂的啊,咱们可能会用到的是这个啊,这个参数大家记一下就可以了,杠J或者杠杠JVM,这可以设置咱们的一个进程的JVM的一个参数啊,主要是设置它堆内存。好,这块是咱们一个重呃了解了哈,嗯,其他方法没必要看了啊,那咱们再往上翻,翻到这个33行,这里有一个什么引擎的命令,也就是说它虽然是Python脚本,但最终执行的是啥呢。
05:09
Java命令。对吧,那我们通过刚才那个杠J那个参数可以指定一个JVM参数啊,内路径咱们就不用管它,自己会去加载啊,还有一些其他参数,最核心的还有一个它的入口类是什么?你power执行肯定要有一个入口类的啊,那这里我们就能很明显的看到,这个就是咱们一切的起点啊,一个叫恩的一个类,那么Java程序执行一个类,我们看的是啥main方法对吧?这都是一些常规套路,很简单,那接下来我们就搜这个方法,对吧?啊,不是这个类啊,然后找它的main方法就可以了,它就是入口很简单,那我们搜类的话,快捷键是CTRL加N啊。这个是搜类的啊,不会有一个什么方法属性那些都跳出来,不会啊,那直接点一下只有一个类啊。
06:05
那就到这了,那么接下来你看,呃,因为是阿里写的嘛,一些注释都是中文的,还是比较清晰简单的啊,它是入口类负责什么负责什么啊,写的比较笼统,那我们要看may方法对吧,CTRL加F12输入may。啊,他自己筛选出来点一下,你也可以CTRL加F,那这一块就到达了咱们程序的一个起点了。嗯。
我来说两句