温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,接下来呢,我们来看一下map test工作机制,那这个非常重要啊,在面试的时候啊,有一些面试官非常愿意去问这个map test工作机制,那看看大家能不能说的好啊,其实他问你的原因就是因为想看一下你看没看过源码,或者说你看过源码之后,你对他的理解是什么样的,你别说海哥我看过源码,但是呢,我没记住,那没有用,对不对,哎,你得是看完之后,那真正的留留在你脑海当中存在哪些东西啊。那第一个,首先你需要记住的就是map test呢,一共分为五个阶段,Read map collect一些和墨,那么来一个一个看。首先呢,这是我们待读取的原数据,送送点T对吧,200兆OK,然后呢,我们客户端对这个任务进行一个切片划分对吧?划完分之后提交给雅,提交三样东西,切片价包和job叉ML。然后。雅安呢,会开启一个Mr master到现在为止,现在还没有进入到map,记住那这块是什么代码。
01:05
是不是job的提交流程啊?对吧,好,那从这个I这个mrp master。启动之后,它开启对应的map test,那才真正的进入到map test阶段。那假如说开启两个,开启两个之后,它由谁来去读取数据了,由这个input。那默认的这个input是test input,那它呢,会调用这里面的record reader,然后在里面的record reader,啊这个reader去读取数据,那他读的数据呢,它的。是对应的偏移量,V呢是对应的一行内容,哎,这是默认的采用这种方式,那当然如果你用的是其他的这个实现类,那么它读取方式是不一样的,比如说command不对吧,诶,那他呢,就是一次读几个文件。好啊,那读完之后,那这个是什么阶段到这儿。是不是就是这个读阶段呢?好,读完之后要返回给麦。
02:05
进入到用户自己写的卖方逻辑进到这里,那也就进入到了。卖出去的。啊好第二题的,那再来,那接下来这个数据啊,会输出到对应的这个环形缓冲区,那环形缓冲区里面一侧纯数据,一侧纯索引,哎,默认大小100兆,到达80%的时候进行反向一写,同时这里面所有的数据都是按照分区的方式进行存储。存储完到达一定阀值之后,会进行一些。对吧,啊一写之前要进行对应的排序。那也就是说这里面在环形缓冲区里面进行的分区排序都属于什么阶段呢?都属于collect收集阶段。那收集满了往出写写的这个过程,那它是什么阶段,它是易写阶段。好,一写完之后,我要对一写文件进行一个归并排序,那这个呢属于末阶段。
03:05
啊,捋一下哈,那这里面一共划分五个阶段,第一个read阶段是用来读取数据,由这个input map为主来操作,那第二阶段呢,是map阶段,由用户自己自定义的这个map。作为第二阶段,那还有在环形缓冲区内部进行的分区和排序,是属于第三个阶段,收集阶段。第四个阶段,环形缓冲区,溢写过程中产生大量的溢写文件,那它叫溢血阶段。对一些文件进行一个规定排序,叫墨的,哎,这就是map态的工程机制,这五个阶段咔咔往那一说,那面试官直接就拜倒在你的死榴裙下了,对不对?
我来说两句