这是我参与8月更文挑战的第12天,活动详情查看: 8月更文挑战
前言
大家好,我是程序员
manor。作为一名大数据专业学生、爱好者,深知面试重要性,很多学生已经进入暑假模式,暑假也不能懈怠,正值金九银十的秋招 接下来我准备用30天时间,基于大数据开发岗面试中的高频面试题,以每日5题的形式,带你过一遍常见面试题及恰如其分的解答。相信只要一路走来,日积月累,我们终会在最高处见。 以古人的话共勉:
道阻且长,行则将至;行而不辍,未来可期!
本栏目大数据开发岗高频面试题主要出自
大数据技术专栏的各个小专栏,由于个别笔记上传太早,排版杂乱,后面会进行原文美化、增加。
@[toc] 停🤚 不要往下滑了, 默默想5min, 看看这5道面试题你都会吗?
面试题 01、请简述LSM模型的设计思想
面试题02、什么是Flush,什么时候会触发Flush?
面试题 03、什么是Compaction,什么时候会触发Compaction?
面试题04、什么是Spit,什么时候会触发Split?
面试题05、MapReduce读取Hbase数据的原理及返回值是什么?
以下答案仅供参考:
面试题 01、请简述LSM模型的设计思想
•step1:数据写入的时候,只写入内存 •step2:将数据在内存构建有序,当数据量大的时候,将有序的数据写入磁盘,变成一个有序的数据文件 •step3:基于所有有序的小文件进行合并,合并为一个整体有序的大文件
面试题02、什么是Flush,什么时候会触发Flush?
•Flush是指将memstore中的数据写入HDFS,变成StoreFile •2.0之前:判断memstore存储大小,单个memstore达到128M就会触发Flush,或者整个memstore达到95%就会触发 •2.0之后:根据平均每个memstore的存储大小与16M取最大值计算水位线,高于水位线就Flush,不高于就不Flush,都不高于全部Flush
面试题03、什么是Compaction,什么时候会触发Compaction?
•Compaction的功能是将多个单独有序StoreFile文件进行合并,合并为整体有序的大文件并且删除过期数据,加快读取速度 •2.0之前:通过minor compaction和major compaction来实现 –minor compaction:用于合并最早生成的几个小文件,不清理过期数据 –major compaction:用于将所有storefile合并为一个StoreFile,并清理过期数据 •2.0之后:除了minor compaction和major compaction,添加了in-memory-compaction –In-memory compaction:在内存中进行合并,合并以后的结果再进行flush,有四种配置 •none:不开启 •basic:开启,但是合并时不删除过期数据 •eager:开启,合并时并清理删除过期数据 •adaptive:开启,并在合并时根据数据量来自动判断是否清理过期数据
面试题04、什么是Spit,什么时候会触发Split?
•Split是指当一个Region存储的数据过多,导致这个Region的负载比较高,Hbase中设定了一个Region最多存储的数据量的阈值,一旦达到阈值,允许Region分裂为两个region,老的region会下线,新的两个region对外提供服务 •0.94之前:ConstantSizeRegionSplitPolicy –只要region中的storefile达到10G,就分裂 •2.0之前:IncreasingToUpperBoundRegionSplitPolicy –根据Region个数来实现计算,当达到4个region以后,也是按照10GB来分裂 •2.0之后:SteppingSplitPolicy –Region个数等于1个:按照256M来分裂 –Region个数超过1个:按照10GB来分裂
面试题05、MapReduce读取Hbase数据的原理及返回值是什么?
•MapReduce读取Hbase原理:封装了一个TableInputFormat来实现读取Hbase的数据 •返回值 –每个Region对应一个分片,每个分片启动一个MapTask进行处理 –每个Rowkey的数据变成一个KV对 –K是Rowkey的字节对象:ImmutableBytesWriable类型 –V是Rowkey的数据对象:Result类型
总结
今天我们复习了面试中常考的Hbase相关的五个问题,你做到心中有数了么?
其实做这个专栏我也有私心,就是希望借助每天写一篇面试题,督促自己学习,以免在吹水群甚至都没有谈资!
对了,如果你的朋友也在准备面试,请将这个系列扔给他,
好了,今天就到这里,学废了的同学,记得在评论区留言:打卡。给同学们以激励。