大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day12】——Hbase6

简介: 大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day12】——Hbase6

停🤚
不要往下滑了,
默默想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相关的五个问题,你做到心中有数了么?

其实做这个专栏我也有私心,就是希望借助每天写一篇面试题,督促自己学习,以免在吹水群甚至都没有谈资!

对了,如果你的朋友也在准备面试,请将这个系列扔给他,

好了,今天就到这里,学废了的同学,记得在评论区留言:打卡。给同学们以激励。


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
存储 安全 Java
每日大厂面试题大汇总 —— 今日的是“美团-后端开发-一面”
文章汇总了美团后端开发一面的面试题目,内容涉及哈希表、HashMap、二叉树遍历、数据库索引、死锁、事务隔离级别、Java对象相等性、多态、线程池拒绝策略、CAS、设计模式、Spring事务传播机制及RPC序列化工具等。
573 0
|
存储 消息中间件 NoSQL
每日大厂面试题大汇总 —— 今日的是“京东-后端开发-一面”
文章汇总了京东后端开发一面的面试题目,包括ArrayList与LinkedList的区别、HashMap的数据结构和操作、线程安全问题、线程池参数、MySQL存储引擎、Redis性能和线程模型、分布式锁处理、HTTP与HTTPS、Kafka等方面的问题。
830 0
|
人工智能 DataWorks 大数据
大数据AI一体化开发再加速:DataWorks 支持GPU类型资源
大数据开发治理平台 DataWorks 的Serverless资源组支持GPU资源类型,以免运维、按需付费、弹性伸缩的Serverless架构,将大数据处理与AI开发能力无缝融合。面向大数据&AI协同开发场景,DataWorks提供了交互式开发和分析工具Notebook。开发者在创建个人开发环境时,可以选择GPU类型的资源作为Notebook运行环境,以支持进行高性能的计算工作。本教程将基于开源多模态大模型Qwen2-VL-2B-Instruct,介绍如何使用 DataWorks Notebook及LLaMA Factory训练框架完成文旅领域大模型的构建。
1274 24
|
数据采集 机器学习/深度学习 DataWorks
DataWorks产品评测:大数据开发治理的深度体验
DataWorks产品评测:大数据开发治理的深度体验
810 1
|
存储 分布式计算 分布式数据库
深入理解Apache HBase:构建大数据时代的基石
在大数据时代,数据的存储和管理成为了企业面临的一大挑战。随着数据量的急剧增长和数据结构的多样化,传统的关系型数据库(如RDBMS)逐渐显现出局限性。
2123 12
|
NoSQL 前端开发 关系型数据库
第四次面试总结 — 嘉和智能 - 全栈开发
本文是作者对嘉和智能全栈开发岗位的第四次面试总结,主要围绕对各种技术栈的了解程度进行提问,包括数据库的使用经验、对Redis和nginx的理解以及前端技能水平。
334 1
|
SQL 安全 关系型数据库
第三次面试总结 - 吉云集团 - 全栈开发
本文是作者对吉云集团全栈开发岗位的第三次面试总结,面试结果非常好,内容全面覆盖了Java基础、MySQL和项目经验,作者认为自己的MySQL基础知识稍弱,需要加强。
328 0
第三次面试总结 - 吉云集团 - 全栈开发
|
消息中间件 存储 前端开发
资深Android开发的5个经典面试题
本文首发于公众号“AntDream”,欢迎关注。文章详细解答了五个常见的Android面试题,涵盖内存泄漏与溢出、Binder机制、MVC/MVP/MVVM架构、Handler机制及Context对象等内容,帮助读者深入了解Android开发的核心概念。
549 0
|
JSON 安全 前端开发
第二次面试总结 - 宏汉科技 - Java后端开发
本文是作者对宏汉科技Java后端开发岗位的第二次面试总结,面试结果不理想,主要原因是Java基础知识掌握不牢固,文章详细列出了面试中被问到的技术问题及答案,包括字符串相关函数、抽象类与接口的区别、Java创建线程池的方式、回调函数、函数式接口、反射以及Java中的集合等。
333 0
|
存储 Java 数据库
每日大厂面试题大汇总 —— 今日的是“顺丰-后端开发-一面”
文章汇总了顺丰后端开发一面的面试题目,涵盖了Java虚拟机内存模型、HashMap与ConcurrentHashMap的区别、Spring框架设计模式、SpringBoot与SpringMVC差异、Nacos注册中心原理、Seata分布式架构、MySQL事务隔离级别、数据库死锁问题解决方法、乐观锁实现方式、HBASE底层设计、BIO与NIO区别、以及为何不使用现有开源框架而选择自建平台等问题。
437 0