00:00
好,接下来呢,我们再来一个理论,也就是说三号机制。啊,我们已经把所有的杀过程都讲完了,回过头来我们再来回顾一下这个沙发机制啊。丑的话,我上来就来这张图的话。呃,基本上是。挂不了。我们来看一看啊,这个沙,问一下沙是从哪到哪这个过程。Map方法之后,Reduce方法之前啊。那么这个沙机制是否跟map task和radio重合呢?那肯定有重合的部分啊,你想想来看一下这张图,你这是卖过方法之后,是不是进入到环境缓程区啊?哎,环原网区一直到一姐到磁盘这一块,那这块属于谁呀。归谁管呢?归map管呢?那你下面这块来读取,从这个map读取数据,一直到reduce方法之前,这块归谁管?
01:00
是不是太的。只是所以说这个只是面试官问的问题的角度不一样,所以说你答的也不一样,比如说人问你map test,那你就说map test这么。几个阶段?从这个读取数据开始,一直到这个数据啊,一写到磁盘,等待reduce上来读,那么如果问你这个reduce。那他就是哎,Map端数据准备好之后,一直啊分组排序一直到这儿。那么问你撒?那suffer的过程,其实它就是从map方法之后进入到分区排序啊。合并、规定排序以及压缩啊,一写到实盘等等一系列事情,这都是suffer的过程啊,再包括到后面,只要reduce方法之前的全是。好,我们详细来看一看啊。千万别把这个概念搞混了。
02:00
其实都是一个事儿,你只要能把MR的工作流程搞定。无论你是map text text还是杀,请搞定。搞定啊啊,那map方法之后出来的数据先进入到完形。中心,哎。写入KV数据到这个保险缓冲区,保险缓冲区里面左侧写索引,右侧写数据啊。总共呢,是100兆到80%的时候。一些反向一些这个拿出去,然后这。之后呢,这里面在往这里写数据的过程中呢,是对这个数据呢,先进行分区。区分完区之后,在溢血之前,他要将这80%的所有的数据进行一个。排序排序的时候呢,也是按照分期进行排序。啊,因为最终这个分区的数据要进入到不同的里面去,所以说你要主排序没有任何意义。
03:02
啊,那第一次你出。一写到这个棋盘上,在一写的过程当中,如果你执行的是。汇总操作,那我是不是就可以调用这个。哎,如果是平均值,千万别千万别掉啊,千万别掉,所以说它是一个可选项。那一写到磁盘最终生成这个一个一个是。还没有在换元宝啊。OK,那第二是一节一样啊分区然后。对应的排序。然后一写到纸板上啊,一写到石板上这么两个东东。好,那再往下,那之后呢,是这个对这个数据呢,进行一个归并排序,因为一写到这个磁盘上了嘛,啊移到磁盘上了,我要把这两组数据通通的进行一个规定。啊。相应分区的数据进行规定。
04:03
多个有序的小文件,形成一个大的有序的文件。那规定完之后啊,还可以对他进行和合并,因为你在之前,比如说你这里面对应的这个分区内部,你你合并完了,但是你再跟他一合的时候,他俩有可能还有相同的。啊,还有相同的。那这时候你已经规定过一次。那在这时候,你可以再来一次。那之后combine之后,其实对这个数据呢,还可以进行。压缩。哎,这个是我们后面,呃。下周一要讲吗?压缩。好,那再往下呢,是将压缩完的文件最终可以写到磁盘上。写到磁盘对应的分区上。等待reduce来。这就是整个map test阶段的杀过程。
05:01
从这开始。包括分区,包括排序,包括commander,包括规定排序啊。以及压缩啊。还有一写到吃饭。那再往下这呢,是MAP1是这个流程,其实MAP2啊,依然是一样的哈。好,这个呢,就是map阶段准备好的数据放到了相应的磁盘上。开始也就工作。Radio是干什么呢?哎,首先第一件事呢,就是copy阶段啊。把数据呢拷贝过来。那拷贝过来,首先是放到内存缓冲区。放到内存里面去。那么如果内存不够。那他就会把一部分数据一写到。理解了是吧。那不管你是在内存中的数据,还是在磁盘里的数据,我都要对你进行一个归并排序,生成一个大的有序的。
06:03
那这块呢,中间呢,还可以按照相同P分组啊。相同的K分组成。把它这个伪装成一组之后,可以放到reduce方法里面去。总之原则就是进入到reduce方法里的数据要求它的key必须相同。是你认为的相同啊,是你认为。那这个呢,就是。从这。开始到这结束。整个这个过程就是沙的。那这里面包括map的。后面这么三个过程啊。包括reduce过程当中的。呃,像面试过程中最喜欢问的就是这个三分机制。他不问你还做啥么机制,就要问你SPARK3份机制。他俩基本是一样的。
07:00
肯定都要问,至少选一个。所以说你孩子我学完之后,你再学Spark。就非常容易了。如果你孩子没学透。那对不起,到18的时候你肯定晕眩。这是三号机制。
我来说两句