00:00
好,那接下来我们看一下这个优化第十章,这一章里边内容呢,大家是要去记下来的,而且呢,在后期写这个思维的时候,多想一想,我们能不能哎,用咱们之前学过的优化去处理一下,对吧?好,第一个执行计划explain这个东西呢,是用来查看这个circle未来生成的执行计划,就类似于你要走MR任务。MR到底有几个对吧,等等的,它是在这个注意啊,执行计法呢,是在优化器之后,要执行之前,它是把优化好的东西给我们看的,这个呢在公司当中做优化的时候还真得用,因为你想想看,工司当中,假如说你做了一个优化,数据量比较大,一个搜呢,可能跑两三个小时,甚至工作当中之前有个学生一个搜索跑了三天是这样的,因为他要跑就是年终做总结的时候是非常大的一个就数据量非常大。就数量大,那你没办法,你就算资源给到位了,他照样还是怎么样,肯定还是慢啊,是一个任务跑两三天这种是有的,而且就是对于mmr任务来说,默认的是七天,默认情况下是七天,如果说你这个MR任务七天还没跑完,他会给你跳掉,他不让你跑了啊,但是这种说跑七天的这种也比较省,一般就是有那种两三天的,那你想想看,如果说我们做了一个优化之后。
01:24
你要实际测试去看效果,这个能怎么样,不太靠谱,不说两三天的这种吧,就两三个小时的这种,我改了一个什么东西,调整了一下,一跑两三个小时过去了,还挺好的是吧?摸鱼的必备手段是吧,我在调优啊啊,所以一般呢,我们是用这个,诶explain对吧?来看一下执行计划,看有没有达到优化的一个效果啊,所以呢,我们先把这个来用一下,包括后面我们有时候做了调整之后,对吧,我们可能不去执行,直接就看X块。因为我们现在有底层啊,很多时候呢,他给我们自己做了优化的,所以两个X plan看到之后是怎么样一样的,我们就知道他们俩肯定是一样执行计划一样,我不用执行两个时间,但时间不可能说完全一样,因为我18.5说跑18.3,这个有区别吗?那肯定没区别了,对吧?啊是这样的,我们来看一下第一个X啊这个东西,呃,首先呢,我们看一下第一个这个就是说在我们正常的可执行的搜个前面加一个这个关键字就好了。
02:30
加一个这个关键字执行计划,他不会去走任务,他把执行计划给我们打印出来了,C拉的心这个东西是不是不会走拉任务了,对吧?所以呢,我们来看一下这个内容啊,它其实就是一个抓取的操作,之前我们好像看到过这个东西是吧,之前我用过,这里面呢只有一个阶段,它上面呢会把所有阶段给我们列出来,然后呢,哪个阶段依赖于哪个阶段,这个它就是一个。一个阶段,然后呢,是一个什么操作,抓取操作,因为没做MR任务啊,没有MR任务对吧,然后呢,里边查询的A表的,看有没有取别名,没有取别名是不是用字体对吧,假如说。
03:10
看这我刚才做了个什么事,取了个命名A对吧,所以呢,它这边是用的别名给我们去扫描的,所以我们之前说了,在C料里边,我们是不是得用别名啊,对吧啊用别名,别名就扫了,然后呢,我们C料C,所以呢,他把所有字发给我们带来干什么,查出来了对吧?啊,这是普通的,这个肯定能看得懂。对吧,里边东西啊好,那这是没有执行MR任务的,那我们是不是得去看一个执行MR任务的对吧?来看这个我们c select的第1PD number平均的薪资,就是求部门各个部门平均薪资,对吧?然后按照部门编号进行分组,我们看到这条这个东西是不是会走啊那啊对吧,好走一下这个不好看了是吧,53行总共,所以让我们给他看什么。粘出来啊。
04:01
呃,这里面呢,它总共有什么。两个阶段啊,第一个呢,是这一这一个根阶段,那我们就从第一个阶段开始看,对吧,然后这零依赖于第一个阶段的啊,在这个基础上呢,再做一个事情啊,注意这两个阶段不一定是两个mmr啊,因为刚才我们看到fe是不是也可以做为一个阶段呀,对吧?好,那第一个阶段明显的是一个什么任务,Ma任务对吧?然后看一下ma操作的一个,这是这整个的是MA6,然后呢,他告诉你ma怎么执行,然后告诉你什么V6怎么执行,对吧?好,那看一下map里面扫描的表。DP这张表因为没有取别名嘛,如果取了别名,这是不是写的就是ABC别名啊对吧?好,那接下来呢,查询操作这块,你看自己看一下,主要的我们关注哪呢?关注这就是他读取的字段这块。
05:06
其实因为这个S比较简单,我们肯定通过简单的来学习,对吧,那你看一下这个S,如果说让你去写,你怎么写。就这个色。我们是不是正常的去读这张表的数据,一条一条的读过来,然后做什么事啊,他要求平均数啊,是不是拿第一批number作为KY6呢?就是说这个地方map里面Y6怎么写,我要求平均数啊,Y是不是应该是两个值了,一个是some,一个是count,最后到reduce,可up方法里边是不是拿some除以count,因为求平均数嘛,没问题吧,对吧,你你这样,那我们看一下它是不是这样子的啊,哎,在这边看啊。
06:11
聚合的key是不是刚才我们看到第一题的number,然后聚合的内容呢?是不是一个some cell,一个是count,对吧?求两个,因为你是平均数,如果说我们只是做some。那它就只有一个了,对吧,如果求看的心,那是不是就也就一个对吧?啊是这样的,那这个求平均数的一个mmr,哎,它这样的写其实跟我们自己想,因为这个搜个比较简单对吧,我们自己能想明白八是怎么走的,一个就是VALUE6呢,得放一个sum,一个com好就后到reduce里边,Reduce里边它干什么事呢?它首先啊,它是根据我们查过来的这个数据,对吧,查完数据最后呢,他一定会做一个事情,看这。看啊,它output呢,输入输出三个字段,就是说ma那边输出三个字段,对吧,然后呢,他要把最终输出是不是应该是一除以二啊,这个所谓的一是不是就是一个sum,这个count是不是一个二啊对吧,最终输出诶他做的这个事情对吧?这就是我们叫所谓的一个解析过程二二阶段呢,二阶段又是一个抓取操作,因为他要把我们最终的结果是不是要写到一个输出到目录啊,不是输出到一个控制台,或者说输出到文件里边,对吧,再做一次处理啊,而且呢,厘米的负一,那我们知道就类似于reduce等于负一一样的,就没有设置,没有设置就是等于什么。
07:33
所有的数据嘛,对吧,假如说你加一个厘米的,它这边呢,也会有厘米的数据,对吧,限制输出多少条啊,这第二个阶段比较简单,它是一个抓取操作,更重要的呢,是过程当中的一个MR,对吧,我们就看就是关心一下MR是怎么走的。对吧,从这里边我们主要看这些东西,以及这里边是不是还能看到怎么样数据啊,对吧?哎,文件个数可能一个数据大小呢,是多大,他都能给我们扫描过来。
08:05
对吧,啊等等,是这样的一个东西,这是我们所说的一个执行计划,当然了,除了执行计划,这就主主要的分为三块啊,Map video,对吧,最后的一个查询,查询过程当中呢,还有一个相除的操作,因为咱们求的是平均数,对吧,这就比较清楚了啊,你这个时候你有时候假如说一个搜索,你自己想不明白这个MR怎么写的,我们是不是可以用X展去看一下,对吧,把核心的内容展出来,我们自己尝试着把这个MR实现一下,是不是也可以对吧?啊好,那在长期计划当中呢,还有一个加。详情其实这个地方详情有的搜呢,详情对于这个他都不走MR任务,你看一下是不是跟刚才一样。没什么区别对吧?啊,包括这个地方其实也差不多,所谓的相信其实一般的我们用X就够了,X够了,这个会说的更细一点,中间呢,可能你要启用了压缩或者什么样子,它都会给你打印出来,就更详细的日志,但是核心的我们把它展出来啊,它是这个把中间的一些参数属性全部给我们列出来,对吧,多的就是这些东西啊,但是核心的看这。
09:17
是不是还是两个阶段,那么第一个阶段是不是还是一个MR任务抓取的内容,看这我们最关心的不是这吗?是不是一样的,只不过多打印了一些其他的信息,对吧?包括我们切到这个reduce里面来看啊。V6,操作是不是还是一样的,先呢去聚合,聚合之后呢,再做一个什么处理对吧?核心流程肯定还是一样的,所以一般的我们用X plan更多一些啊,X plan更多一些啊行,这是我们所看到的,那后面呢,我们在讲到其他优化的时候,我们还会用这个关键字啊,带着大家再去看一下。
我来说两句