00:00
啊,接下来呢,给大家这个串讲一下这个面试题哈,这里面所有的题全部都是真题,呃,基本上我都没有去改啊,所以说呢,这如果你能把这一套题。真的全搞定的话,那至少能支撑起你25K的一个薪资。那这25K不是说你背完这个你能拿到啊,什么意思呢?至少你25K的时候,面试的时候不会给你拖后腿拍度,我这块不给你拖后腿。那剩下的就是其他框架,看你还不OK。而且这块呢,会给你涨分,只会给你涨分,不会给你降分啊。好,那我们看一下。入门这一块,我们要掌握哪些入门?一共就四道题,比较简单,而且呢,呃,会让你轻量级的去答啊。比如说第一个简述如何安装阿帕奇的一个开源爱度吧,啊,只描述即可,无需列列出这个具体的步骤,呃,这个呢,最好还是列出这个具体的步骤啊,这样呢能体现出你的。公立站的啊。那你完全把这十步都背下来,那我估计够呛吧啊。
01:04
你可以抄一点,比如说准备一台。服务器对吧,啊服务器就行了,那这个整个一下就都省了啊一台服务器,然后呢,安装GDK啊,然后再安装一个拍吧。对吧,啊安装还版啊,然后呢,启动这个内部not进行格式化啊对内行格式化。格式化完之后直接启动。就完了啊。如果你稍微再突出一点的话,就是说要配置一个SSH。还记得这个官网上要求说什么SSH是必备的,JDK是必备的,对吧,这两个是必备的啊,剩下的你们开头完成包安装,然后之后呢,格式化内到的启动机群。就完事了啊。达到这种级别就OK啊。行,那下面呢是中需要哪些配置文件,作用是什么?这个你能记多少就记多少啊,记不住也没有太大关系啊,太大关系,但是至少得知道有这么几个文件吧。
02:05
赛得知道吧,啊知道啊,还有这个A得知道,还有map,其实还有一个雅啊,这四个文件要我名字能够说出来,但是这几个名字里面具体有什么内容。能记住更好,记不住没关系,清楚吧,这是这一道题啊,那往下呢,是请列出正常工作的嗨度基因中嗨度吧都分别需要启动哪些进程,它们的作用是什么?哎,这道题对于什么样的公司容易问你们呢?初创的小公司。特别爱问啊,为什么特别爱问呢?因为深的他也不会啊,只能问这个简单的是吧啊,而且只要你把那机器能扎起来。那你肯定要知道这几个进程吧,啊,这是必须的啊,Name not啊,Second name not啊,Not manager not manager啊,这几个前五个就OK。非常之简单吧,如果这几个进程你要想不起来。
03:02
那那就把。完蛋了是吧?还有一个啊,还有跟上一个题是一样的。呃,属于这种比较简单的,呃,面试官的容易去问的。几个默认的端口号。啊,因为只要你把它答出来,就能证明你干过对吧?啊干过50070,必须记住。还有一个8088必须记住。啊,这两个至少是把这两个要给我记住的,那其他性的这几个选择性记住。就OK啊,三个字内的啊,50090。等哈,还有一个幺九。888对吧,啊,一百八八啊,差不多啊,这个要求不高,呃,我之前在笔试题里面遇到过N多次这个。但是呢,最常见的它要求是name not manager啊。这几个比较常用的。OK,那再往下呢,是HSHS读写流程没得说,必须B的搞定啊。
04:00
读数据流程,写数据流程。啊,问的频率比较高哈。还有是三个多人的工作机制啊,这个还好啊,我突然发现后面这个问的不是特别多啊。但是你得会啊,你得会。就是这个。再往下呢,是note和second name note的区别啊,这个区别吧。先把这个答案说的一般啊,可以看一下。嗯,什么区别呢?内弄的负责管理整个文件的原数据,以及每一个路径所对应的数据块三,内弄主要是辅助内弄的工作啊,帮他干什么?合并镜像文件和编辑日志啊。你达到这种程度就差不太多啊,就。OK啊,不用打的特别特别深。那稍微再往下连一点的话,就是name note挂了之后可以将secondary name note中的数据拷贝过来,对吧?哎,拷过来进行一个恢复啊,那你要记住恢复的过程当中是无损的恢复吗?
05:08
啊,不是哈,是有一定的这个损耗的。OK。服役新节点和退役旧节点的这个步骤啊,这个步骤呢。呃,这个下面这个答案不是特别标准啊,还是看我书上的这个课件报的课件啊,出书了董长。看我的课件啊,那个呢标准啊,直接呢,就是复一新节点直接启动就OK了。那这里面稍微有一个白名单的事儿是吧,白名单的话就是说只要在白名单上这个节点一启动就OK,不在的话,那你启动不了。啊,这次那退役旧节点呢,属于将你已经启动起来的这个服务器啊,正常的退出,退出的过程当中呢,其实是将你要退出的这个服务器中的数据。一个拷贝啊。拷贝出去哈,一回事。那下面是内note挂了怎么办?那至少你要知道一种将30内not的数据拷贝到。
06:03
内部的连去啊就。OK哈,好。下面呢是MAP6,谈谈还多序列化和反序列化,以及自定义并对象实现序列化,呃,这个呢,你只要能自己去。呃,会写变对象,使先序列化那么几步,是不是有七目,还记得吗?啊,这个。这几步啊,要想起来就差不多,至少这里面要记住什么呢?哎,必须实现一个接口,第一步搞定,要重写它的序列化和反序列化。然后呢,反序画里面呢,还有一个要求,有一个空山构造对吧,空仓构造写上,那这呢,再加上这一条注意事项。注意,反序列化和序列化的顺序必须完全一致。那就成了。就这么一个要求啊,把这一块自定义这块搞定,那下面这个比较这个,呃。如果他问你排序的时候才会涉及到这啊,不涉及到排序,光问你这个序列化,那你前几条就能搞定。
07:01
呃,下面是非一步的分发的欺骗机制。这个源码那肯定是。要炫一炫的是吧?啊,要秀一秀的,怎么能证明你看了这个源码呢?就有一块能证明啊。至少说你在向这个集群提交资料资源的时候,提交了哪些内容?是不三个东西啊差呃价高,还有什么切片对吧?啊切片信息,那么提交这些资料提交到哪个路径上,是怎么看的。后面加上job的ID对不对,这的ID那就OK了。就能证明你看了。那再往下呢,是它这个具体的切片啊,如果你上面那个没记住,那至少你还得给我记住一个它切片怎么切的,它切片怎么切的,还记得吗。有两点能证明你看过。
08:02
默认大小是按照块的大小,对吧,那个MAS那有个公式是吧,一个最小值一个最大值啊还有一点一点。一倍是吧,啊,这两个点能证明你看过这个源码吗?OK。你得想办法证明自己啊。另一个呢,是自定义input流程,这个没啥说的啊,自定义类继成fair啊,然后改写完了。比较简单粗暴一点啊呃,这个问的比较少啊,相对来说比较少啊,基本上就是属于实操代码开发中用的。另一个是如何决定drop的map和reduce的数量。Map数量。那么map的数量其实就是。切片的数量对吧?啊,切片的数量,那切片的数量呢,由这个公式来决定。那另一个呢是reduce的数量,哎,Reduce数量呢,就是在这个驱动类中进行一个设置就搞定了。这是这一块。
09:00
再往下ma的个数由什么决定?其实这个跟上面是重复的啊,就是由切片来决定的。再往下呢,是map test工作机制。我之前说过有几种问法是吧?问,Map test工作机制?问radio test工作机制还有问?MR工作流程啊,还有个什么呢?沙机制啊,沙机制啊等等这些你都要把这两张图是吧?啊,一共有两张图给它背下来就OK了。这个我就不多说了啊,非常重要。还有呢,是就有几种排序和排序发生的阶段。啊,那这个呢,是部分排序全排序。辅助排序以及二次排序,还有自定义排序。那么除了这个分组排序之外,是不是其他的都发生在外部阶段呢?全部分排序,全排序都是这个你这个编对项里面去重写的方法。那这个二次排序也是二次排序呢,就属于这个多个条件啊,这个是自定义排序的步骤啊。
10:05
实现able接口。重写官网。在外部阶段。在这阶段。好,那ma就是沙的工作流程,如何优化沙发的这个阶段,那这个哈沙的工作流程啊,几乎是必问。那B呢,如何进行它进行一个优化呢?你还能想出几个方法吗?沙发的优化。想想啊,这里面提到了一个增加是吧?啊,这也是分条件的汇总的操作是OK的,对吧,那我上午讲的MR优化。方法里面提到了,提到什么呢。你这里是不是有增加环环形缓冲区100兆这个参数设置,哎,是不是提高这个80%这个比例啊,这是一种吗?然后是还有一个溢写是吧?啊,我是不是可以这刚才提高那个是为了减小一写的次数对吧?那我还可以增大合并溢写的文件吗?记得还有个末是吧。
11:11
啊,磨的时候增大提高这个磨的这个次数啊,啊等等这些都算优化的手段。包括在端啊这个地方也是哈,也是你也可以这个将一些数据放在内存中进行一个处理。这个是最详细的一个压缩啊,这对这里面还有可以采用压缩的方式,对吧,IO的过程我采用压缩,采用snap,采用拉着罗啊等等。中command的作用是什么?一般使用场景,哪些情况不需要及的区别?ER的作用是不就是提前合并呢啊,提前合并提前啊,使用的场景呢,就是适用于汇操作,不适用于平均值啊这个意思,那与的区别是什么呢?Commander呢是在map阶段的一个处理,Reducer呢,属于在reduce阶段的处理。
12:07
不一样。呃,Map工作原理,请举例说明map是怎么运行的,那这个呢,就是它的一个详细的工作流程,两张大图往这一放。轻松搞定。再往下,如果没有这个分区,那数据在被送达前是如何被分区的?就说你没有这个定义这个排队,那么数据被送达之前是如何被分区的啊,如果没有自定义这个盘章默认的是。啊,排列算法啊,根据每一条数据的K的哈西code的值啊,模上这个这个数量啊,得到这个分区号啊。呃,那个是60怎么实现top n,是不是今天刚才你讲的啊。这个就是啊,其实呢,你就可以,呃,如果说不是做的那么好的话,直接可以在60端啊,将这个数据封装到一个去卖本身去。
13:05
然后在群外面里面,它默认对会对这个进行排序,我只取前十位啊,不管你是按照正序还是反序。自己的这个排序规则,然后将这个你。控制的这个前N个数进行一个输出就OK了。那好,下面呢是14。有可能使拍度吧,任务输出到多个目录中,如果可以怎么做,那就是自定义out不啊,自定义控制它的一个目录的一个输出啊,这里面是控制输出到多目录,其实它还可以控制输出到MYSQL啊,输出到red啊等等一些地方都是可以的哈。那再往下简述哈豆实现噪音的几种方法,每种方法是的,如何实现的?在这里面就是一个reduce噪音和一个map噪音啊,Reduce噪音是怎么回事呢?
14:03
在map阶段,你是不是要将所有的数据进行打标签的啊,那这里面涉及到一个涉及的P。设置的P什么特点?两个表当中的是不是这个连接件啊,或者连接字段呢?哎,相同字段作为K,那剩下的其他的都作为。Y啊Y同时在它的并对象里面再加一个。Flag标记吧,啊,Flag标记啊,然后传到RE6端,六端就通过这个标记判断你是哪张表里的数据,然后分别分装成两个大的集合。然后一循环其中某一集合,把这纸往里一添,这事就。啊,这就是这个,呃招啊,Reduce噪,那么map就更简单了吧,哎,所有操作都在map集团处理。那也说提前在map里面有一个set up方法。缓存一张文件啊,然后呃,把这个文件呢,缓存到阿奇map这种集合里面去。
15:06
然后下边再执行map方法的时候,把这个表里的数据跟读取到的数据进行一个招引啊。当然缓存文件的时候,你还需要在驱动这个类中进行一个设置啊。那另一个呢,是请描述拍度管怎么实现二次排序?简单吧,啊这个重写。嗯,叫实践compared to。接口是吧,啊,然后实现它的重写的方法就OK了。那个参考下面系统的场景。A块的大小是60兆,实物类型呢是不发的,有三个文件大小分别是64K 65兆,127兆。拍框架会把它。文件拆分成多少块?啊,下面倒块大块。
16:05
这是块啊,我觉得这道题往往有有同学一上来一看,哎呀,终于有个65道,这肯定是一块啊。其实忘了啊。块的大小是严格执行的啊,只有切片的时候是不是这个1.1倍啊。啊要注意啊,所以说这块呢是五块啊,也就是说这65兆也会切成那一块。这个要注意切块啊,块的概念和切片不太一样。呃中recorder的作用是什么?那这个是哪里的?是不是自定的主件啊,啊,那这个这个呢,其实就是用来这个文件啊。你可以简单粗暴一点,就是来做文件的,下面这个答案不是特别准啊。OK,那读的时候呢,你可以按行读啊,可以按一个一个整个文件去读啊。啊,包括你按其其他方式去读都不太一样哈。在下面给你一个G的数据,分别有ID内四个字段,按照mark分组ID排序,手写一个MA6,其中有几个map。
17:12
这个是京东的一道面积。你记得数据分别为这么几个字段?按照mark分组ID排序手写它。那其实说是分组说是排序,那是不是就是涉及到一个二次排序啊啊对吧,啊两个条件嘛,先mark进行排序,再按ID进行排序对吧?哎,排完序之后,然后最终一个输出就完事了啊其实就是。两次的判断。先判断mark,然后再判断ID啊。就OK了啊,这个是完全能实现的啊,我试过。呃,这是MA6,当然我这是简写的啊,在这个面试过程当中,要求非常完整三个类。
18:00
和driver。N多个公司让你手写过这个。呃,写的最多的其实是Spark的。多好。当然,孩子可能也有。但是原理是一样的哈,所以说你学完之后再学Spark就轻松多了。那其中有几个map,那你说你这个1G的数据要分成几个芯片。其实准确说是几个。出去八个啊,八块啊八个。OK,那再往下。那简述哈一一.x和哈2.x的架构异同。最主要的就是增加了盐啊,这些人啊,如果再增加的话,就是最主备边的支持,实现比较可靠的这个高可用,就是我后面要讲的这个ha。为什么会产生雅安?它解决了什么问题?有什么优势?
19:01
很简单吧。啊,雅安是干啥的?资源调度协调的框架是吧,啊主要解决的是结偶啊,把那个资源分配和运算完全分开。另一个其实它还可以运用到这个,像STEM框架,Spark框架,STEM跟这个没有任何关系,他都可以跑三向的程序。想想它相当于就是一个操作系统。平台,在这个平台上可以跑任何的其他的应用程序,QQ,陌陌、探探。有缘网是吧。呃,MR作业呢,提交全过程,提交流程,这呢就是我丈夫讲的这个丈夫提交流程啊,一定要会啊,这个整张这张大图。包括。呃,下面map HS。其实你要再给他讲这个提交流程的时候,如果你能把所有东西都给他展开去讲的话。
20:02
他就像神一样的崇拜你,是吧?把你当成神了。非常崇拜你。直接你要多少给多少。再是面试的时候要要有自信啊。前那个。是11108班那个叫叫啥了。是不是写他名字了?他重新面试,那气场超级多啊。首先面试HR给他一道题,让他去做。啊,他直接来了一句,这个三年前我就做过,今天我不想做,叫你们老大来。然后接下来他老大确实来了啊,来了就开开开始面试啊,然后问一下基本题不答这个太太太太浅显了,太简单了啊。啊,然后最后呢,直接就砍到他要的是22,最后老大给的25。是不是很厉害很厉害啊。
21:01
但是很屌的,其实你看就看你的气场啊,你要是怂了那就完了,嗯。包括去他那个公司,呃,他是一个就是之前是加一的老学员啊,就是学的不是特别好啊,但是也不差。啊,但是呢,之前去他公司的有一个是吉林大学的硕士。啊,极大的受损。而且学的是超级棒。去了之后才得到22。啊,然后还是费了很大劲。啊,但是他去了呢,那就是吊炸天了啊。老板你看22留不住啊是吧,赶紧25。25还是16星还是一星。金融公司特别有钱,如果能进金融公司的话还是可以的啊。行,那那下面往下看A数据的压缩算法啊,及每种算法的一个应用场景,那这呢,就是上午讲的啊及这个。呃,还有拉罗啊,还有这个啊。在这几种应用的场景啊,要背一下啊。
22:02
这个是呢,还多调度器总结,这也是今天讲的内容啊,呃,至少要知道你是容量调度器是默认的。这种调度测量或。呃,底层的都是这个最基本的报。这呢是容量倒G的,目的呢,其实就是提高这个。并发度哈,提高它的并发。公平调度器呢,为什么现在呃没有,呃,好多公司不在用呢,就是因为他这个对这个服务器的性能要求特别高啊,所有的任务同时去开啊,并发度特别高,那么如果你这个有一个任务啊。跑的慢,那整个有可能把你整个集群的能全拉下来了。一定要注意。另呢是推测执行算法及原理。那这个就是推测执行。非常简单了啊,把这张图这个公式背下来。就OK了。啊,相信呢,你能看得懂啊。呃,下面呢,这个是迈,就是跑得慢的原因。
23:03
这个下午也讲,上午也讲过啊。然后MA6是优化方法。从输入阶段、map阶段、阶段以及这个IO数据倾斜。还有什么呢?呃,减少顺新的这些方法比较多,常见的参数,常见的参数你肯定记不住啊,但是你要大概有印象,能减少能控制哪些东西啊。就OK,包括这个具体的值不用记哈。这是这么多。这两项呢,是小文件的这个弊端,呃及如何解决,最主要的是如何解决,那就是归档啊,File combine,以及这个GM重用啊,这四个名字要给我记下来啊。呃,Ma就是怎么解决这个数据均衡,呃如何确定这个分区号啊,这个呢,往往就是对这个。某一个你不能。数据不均衡吗?这里面跑的任务特别数据特别大,怎么办呢?就像打散它。
24:02
把它想办法给它打散,分成一个一个的小类。可以加随级数。还说要加盐呐啊等等啊这些方式啊,把它处理掉。那中job和task之间区别什么?Job里面说的是包含太的。啊,这一个兆里面可能有多个pass。包括它的map reduce test啊等等。行,这个呢,先就是整体给大家过了一遍啊,在这个答这个题的时候呢,没有必要啊,照本先搁的啊,把这个标往那一放。那你反而就挂了啊。啊,差不多就OK啊。有个印象。呃,重点的一些题要重点的去背一下就可以啊。
我来说两句