00:00
好,接下来这几个呢,呃,就还好了,第一个叫必行之行。叫变形之行,那这个变形之行者什么意思呢?因为在整个这个汉武之行任务当过程当中啊,它有很多阶段。它有很多阶段,甚至到mmr当中,我们也知道mmr当中呢,有ma阶段,Reduce阶段对吧,输出阶段,输出阶段有很多阶段嘛,啊,但是MR当中呢,这些阶段啊,你说能必须执行吗。Map能并行执行吗?可以对吧,某些特定的条件下,我们要开启行是不是也可以啊,对吧?哎,你会发现你跑任务的日志打印,诶,MAP70%,REDUCER10%了。有,有见到过这种日志打印吗?没有,你们没有见过百分之,就是你们见到的都是到100%之后才会有从0%,你也就是说你们一定会看到这个数据是么?一定会看到一行这个内容,然后才会有一定内容没有见过,这是70的时候,这就是候啊是可以的。
01:14
啊,可以的,它就类似于我们所说的,你提前做一次videos去干什么呢?把某一些map的任务先提前聚合一下。能听懂,假如说你有十个map,有的map有两个map,它分到的任务数比较大啊,因为最后可能比较小,那这个时候呢,如果开了B1执行,那当前有两个map任务他先走完了,走完了之后正常情况下是不是等着其他的map任务全部结束之后,Reduce来拉取啊,对吧?如果你开了B1执,那这个时候radio呢,可以先提前启动,先把你算好的level任务这个东西给给他拿过来干什么?做一个聚合。啊,做个求合,但是这个聚合是最终的结果吗?不是啊,接下来呢,等其他的脉搏任务完了之后,他把其他的聚合在一块,接下来再起一个任务,对于我们聚合的结果,再说一次什么聚合啊,再说一次聚合啊,从资源消耗上面呢,他可能更消耗资源,因为他多跑一个reduce任务,但是从时间方面呢。
02:16
更节省一点时间,因为你我在你其他map还没跑完的时候,我把某一些某几个map的结果已经占上,做了聚合了啊,做了聚合了是这个意思啊,那对于汉当中呢,不光只有mmr阶段对吧,那其他的还有抽样,假如说他要对这个数据集进行评估对吧?还有最后的厘米的阶段等等这些东西呢,它有很多阶段,有的阶段是没有互相依赖关系的。没有依赖关系的,那什么意思呢?就类似于假如说我们说input和map,他们有没有依赖关系?这两阶段一定有吧,我一的数据没读进来,我那这个任务能跑吗?跑不了吧,是这意思,也就说有的有依赖,有的没有依赖,没有依赖的这种任呢,我们可以就对它开启什么。
03:05
并发之行啊,并发阵形集群的利用率比较高啊,当然这种情况下呢,也说了,在资源比较空闲的时候才可以做。因为它相对来说消耗资源要多一些。对吧,啊,消耗资源就会多一些啊这个意思啊,两个属性,一个是你开启打开啊,任务变异执行第二个任务并行,那个什么并行度啊,并行度问题啊,比度问题,那这两个属性呢,我们来看一下。走默认是什么first啊,也就是说一个阶段一个阶段的,我们自己干什么。一个阶段按照顺序去执行的,尽管你们俩呢,没有逻辑关联啊,不互相依赖,但是按照顺序呢,你们俩必须相互执行,默认的呢,是并行八个名路,那你可以改成16个啊同时运行的,那接下来。严格模式这个东西,好像你之前看到一个点。哪个地方也提到了一个什么严格模式。
04:01
还有。动态分区。对吧,注意动态分区,这个是动态分区的,它的一个什么。严格模式跟动态分区相关的,那这一块我们的严格模式全渠道。啊,全指导它默认值呢,是非严格模式,我们来看一下。下的对吧。非烟模式。非英文模式,那这个呢,是从那个文档里面拿出来的,好,那我们看一下啊。这个严格模式啊,它规定的有一些操作啊,不能一行,他说在严格模式下。有一些操作是有一些查询是不被什么允许的啊,这包括这些东西第一个。啊,认识。
05:03
迪卡尔奇啊,不是这个单词都不认识了吗?也就是说在严格模式下,迪卡是不会允许的,我们之前不是说过可以有一个属性来关闭这个卡,就是它在生长环境当中,我们都设置的什么严格模式,这是第一个,第二级不被允许,第二个。对于如果说是一个分区表。你不指定分区的话。过不了这个意思,接下来这两个东西看一下。比较和three和double这个也不被允许的啊,因为它比较时间比较长啊,因为模式他不让,最后还有一个。
06:00
叫。什么意思?就是你写了奥特曼语句,但是没有写这个。这个也过不了啊,这个也过不了,我们之前来看这个其实比较少用啊,我们测一下他们俩。测一下他们俩OK吧,好,那第一个第二题怎么写,我们写一个抵抗二级。呃,这款那个新from这个第一批。把它字段一拿对吧,哎,这个字段是不是上面有啊,然后我们还有一个select新from这个什么EP,我们就用这张两张表,然后把它的我随便拿几个对吧?啊,拿几个就够了啊,然后我们写一个第号。呃,我要查一下这个烟担保可以吧。Number好啊,我加个名字吧,叫1.number,呃,然后呢,查一下d name可以吧,叫1.dna好,然后那这个东西应该。
07:09
是逗号,直接写逗号吧,DPD,然后D。就这样吧,那这个出来的结果应该是多少个14乘四还记得吧?啊,14乘四啊,是这个结果,这个就是做的第二题是不是。啊,这是第一个,我们其实之前都做过,是不是可以运行成功啊,这题可以运行成功,好,然后接下来all的那个内容select。新from这个EP,这张表,我要order。拜啊,第一批,那我按照这个这张表里有吧。有。肯定有啊,他关联字段吗?只不过说我没粘到对吧,后面还有啊,那这个东西是不是也是可以运行的,现在之前我们都运行过吧,啊,那这个56条没问题吧,啊做了第二题啊第二题等会呢,我们把它设置成在什么。
08:12
下你看一下啊,你看一下。使用的时候。对,在生产环境当中,一定是把这个严格模式是开启的,假如说你这个公司工作的时候,呃,人家还有已经搭好了,都得方执行一个搜狗执行不了。你就知道大概是严格模式对吧,你要临时去拍一下,好这个都是OK的,然后我们去打开严格模式,直接set一下,等于什么straight对吧,是straight啊不是。现在呢,还是这个什么。非严格模式,那我们把它等于什么这个ST?CT对吧,这个啊走模式好,同样的第一个这个号级走一下吧。看来。
09:00
不错,他说什么?在一波下,你的第二级是不被允许的。对吧,啊。如果说他说你想用的话,你干什么把它设置一下对吧,好第二个是这个内容吧。RC。走,他说了,如果在一个模式下,如果你用的话,指定奥法limit是,这个是必须要指定的,也就是说你可以干什么。拎一下诶这个就可以啊,严格模式啊,严格模式一定是打开的啊,一定是打开的,这个要注意一下啊,特别其实这个第二题还好,因为做的用的相对来说比较少一点,更多的是这个old法啊,更多auto,那你要知道一下,你要用到auto,因为你有可能是要做一个全局排序,导到另外一张表里边了,对吧,AUTOB1执行,他说必须要有什么因,那这个时候呢,你在整个的S前面加一个什么。Set这个东西把它制成什么?
10:00
非严格模式对吧?啊,这是非严格模式这个意思啊。将重用。接着我们瞅瞅这个应该还好吧。对吧,啊大家也都知道,就是如果说小文件对吧,更多的是小文件的一个场景,因为如果这个文件数比较大,你开接外反而会影响到整个的什么。速度对吧,啊,整个速度好,接下来是推测执行。这个东西也没问题吧,真的执行干什么事的。当某一个或者几个任务明显低于平均速度的时候,我是不是要另外开一个任务跟他同时跑啊,看哪个先走完用谁的结果吧,另外一个直接就给他干掉啊,做这个事了啊,都这事了啊,注意一下这个呢,也就是说,呃,如果说有拖腿的这种任。但是如果说你是由于数据量大。处理了,那你就不要开了。
11:03
因为数据量大,本身任务跑的慢对吧,本身任务跑的慢是这意思啊,你就不要开了啊,因为你一旦开了之后就会有问题,因为你要再起个任务嘛,这种推特执行开启状态啊,他消耗资源。更多吧,因为你同时对一个数据集要开两个任务去运行,对吧?啊,它资源消耗就更多一点啊,所以呢,如果本身就资源不足,你对想用什么时间来换资源的情况下。就你资源不足,你是不是要用时间来换资源啊,就说这个任务可以跑的慢一点,但是呢,呃,尽量能跑完,在我们有限的资源里面能跑完了啊,是这个意思,就类似于我们用group来代替in。是不是用时间来换取了资源啊,因为你用会导致内存一出嘛,这资源不足才会内存出啊,对吧,假如说给你40个T的那个内存,然后呢,让你跑20个G的数据,那我肯定用了。因为他快呀,对吧,因为我资源有啊,我我资源足够的情况下,我不就追求时间嘛,对吧,但是资源不够的时候,你是不是要牺牲时间来换取资源,对吧,也就这意思啊,推测执行呢,当你这个资源比较足的时候来开,而且呢,开启方式还在MR开慢开还这边呢也可以啊,也就这个属性啊,就可以开启啊,就可以开启啊,是这个意思啊。
12:20
好,那接下来压缩就不用聊了啊,不用聊了,那最后还有一个X。查看执行计划这个东西啊,大家要关注一下,其实在面试过程当中问这个点问的就目前来说很少很少很少很少,因为在公司当中,就目前咱们那个水平来说啊,就钢琴公司用不到一个点。用不到来我们看一下。这个东西干什么事呢?Select,新from,它是把整个的语法书给你。分析出来了,它呢,总共包括什么。一个阶段C的心嘛,一个阶段,这一个阶段呢,是一个跟阶段啊,就由它开始的,好,刚开始的,然后他会告诉你是一个什么。
13:10
抓取操作对吧,厘米等于负一,也就是说你没有写厘米的,没有厘米的阶段,我们之前提到了多阶段并行运行的时候,是不是有一个厘米的阶段啊,里面是一个独立的阶段,等于负一呢?没有这个内容啊,然后是table scale。叫扫描扫描的表对吧,扫描哪张表,ERP那张表,然后底下的一些查询的一些操作啊,查询这一套东西。啊,因为你这个地方用的是c select心没有取名字,所以它用的全是什么别名啊,假如说你c count,或者说你就紫查询,它有多个阶段的任务全部给你展示出来,这个干什么事呢?帮助你分析这个搜的整个的运行过程当中,它的一个map任务,Videos任务,那这样我们看一下这个内容。呃,因为这个他不走mmr任务是不是这个看的心我们看一下啊诶。
14:05
它是帮助我们来分析整个过程当中,它是怎么走的啊,它是怎么走的,那你可以看一下这个内容。在转板它有两个阶段,STAGE1是个根阶段,然后呢,STAGE0是依赖于这个STAGE1的啊,分成两个阶段啊,那STAGE1里边呢,用map操作。上一个是什么操作。还记得那个抓取模式吗?对吧,他监测到它是一个抓取,是不是就不开启研发任务,对吧,他现在不是一个简单的抓取任务了,而是一个什么MA645,那这个过程中呢,扫描的表还是粘体没有问题。对吧,然后go一个操作。没有勾BY的一个操作,因为我们没有写勾什么字段码啊,勾字段呢是空的,然后聚合操作呢是一个。他的心啊,输出的名字还是取的什么?别名啊,还是取得别名好,Reduce一个操作的so啊order啊,也没有吧,没有写吧,啊在那个阶段好reduce这一块是做的什么事,真正的做聚合了啊,此时呢,是记录一下要聚合什么内容,因为他要写那个PV对吧,啊写KV,那这个时候呢,他要去真正的做聚合,聚合的是不是上一个阶段的这个平理。
15:21
对吧,啊,上课阶段这个平名那意思啊,最后第二个阶段里面呢,又是那个什么抓取操作,最后抓数据,因为这个limit呀,没有写limit啊等等的,它是帮助你分析一下你这里面用到的这些内容。帮助你分析的,那这个是一般什么认证啊,你搞不清楚两个搜狗,或者说一个搜狗这个东西真正的MR怎么是运行的时候。因为有时候我们写出来的,So,我们当时我在讲那个整个MR或者汉之前,我给大家呃,布置了一个小的任务啊,我估计你们都没做啊,就是我举个例子,就是说你每写一个搜狗,你要自己去想一下这个阿MR怎么写的。
16:01
有人想要吗?我最早的时候就说过这个问题,对吧?因为你写的搜最终是翻译成map任务去执行的。对吧,翻译成mmr去执行的,那你是不是要想一下这个mmr怎么走的呢?对吧,当你想不明白的时候,我们可以用X flag来看一下人家是怎么写的啊,人家怎么写的,当然这个东西你初期到公司的时候,这个基本上用不到,用不到啊,你大量的来解决需求,因为更关注,就像现在大家关注一下你是不是只关心你这个so怎么写。你我我当时举个例子,就是说让大家去啊,做这个事儿,大家都不做啊,所以呢,生长环境当中呢,很少去做这个事啊,这个就是帮助我们分析我们这个搜索语句,它翻译成MR这个语法数怎么来的。啊,它到底这个翻译成mmr,这个任母是怎么走的,中间用了哪些列啊,大概的呃,对哪些列进行聚合啊等等这一系列的一个操作啊,什么一步方法的,这些东西到底是怎么用的啊,或者说用的是谁啊,都可以帮助你做具体的一个分析啊,具体一个分析,所以呢,呃,这个东西呢,说了第一个呢,面试过程中这个东西问的极少,第二个呢,就在你初期的时候用,到初期的时候不太用得到,说实话不太用得到啊。
我来说两句