HBase 高频面试题及实战答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

HBase高频面试题及实战答案

一、基础概念类

什么是HBase?它和关系型数据库(MySQL)的核心区别是什么?

答案:HBase是基于Hadoop的分布式列存储数据库,主打高可靠性、高扩展性,适合存储海量半结构化/非结构化数据(PB级)。核心区别:①存储模型:HBase列存储(按列族存储,查询时只加载需要列),MySQL行存储;②事务支持:MySQL强事务(ACID),HBase仅支持单行事务;③schema:MySQL固定schema,HBase松散schema(列族固定,列可动态增减);④场景:MySQL适合结构化查询、事务场景,HBase适合高并发写入、海量数据随机读取(如日志存储、用户画像)。

HBase的核心组件有哪些?各自作用是什么?

答案:①HMaster:集群主节点,负责管理Table(创建/删除/分区)、RegionServer负载均衡、故障恢复(Region迁移);②RegionServer:从节点,负责存储和管理Region(Table的分区),处理客户端的读写请求;③Region:Table的最小分区单位,一个Region包含某段RowKey范围的数据,由多个Store组成;④Store:对应一个列族,包含MemStore(内存缓存)和HFile(磁盘存储文件);⑤ZooKeeper:协调集群,存储HBase元数据(如Master地址、Region位置),实现Master高可用。

RowKey、列族、列限定符、时间戳的作用分别是什么?

答案:①RowKey:行标识,唯一标识一行数据,按字典序排序,是HBase查询的核心(必须通过RowKey或RowKey范围查询);②列族(ColumnFamily):列的集合,是HBase的存储单位(同一列族数据存在同一目录),设计时需提前规划(不宜过多,一般1-3个);③列限定符(ColumnQualifier):列族下的具体列,可动态添加(无需预定义);④时间戳:数据版本号,默认写入时自动生成,支持多版本数据存储(可通过配置保留版本数)。

二、核心架构与原理类

HBase的读写流程分别是什么?

答案:①读流程:客户端先查ZooKeeper获取hbase:meta表的RegionServer→查hbase:meta表,得到目标RowKey对应的Region和RegionServer→直接向该RegionServer发起查询→RegionServer先查MemStore,未命中则查BlockCache(HFile缓存),再未命中则读HFile文件→合并结果返回客户端;②写流程:客户端通过ZooKeeper找到目标RegionServer→数据先写入WAL(Write-AheadLog,防止RegionServer宕机数据丢失)→再写入MemStore→当MemStore达到阈值(默认128MB),异步刷写到HFile→客户端收到写入成功响应(无需等待刷盘)。

WAL的作用是什么?如果WAL损坏会怎样?

答案:WAL是预写日志,核心作用是“故障恢复”:RegionServer写入数据时,先写WAL再写MemStore,若RegionServer突然宕机,MemStore中未刷盘的数据可通过WAL恢复。如果WAL损坏,未刷盘的MemStore数据会永久丢失,可能导致数据不一致;解决方式:开启WAL副本(hbase.wal.replication.enabled)、定期备份WAL文件。

Region分裂和合并的触发条件及目的是什么?

答案:①Region分裂:触发条件——MemStore刷写后HFile数量过多(默认32个),或Region大小达到阈值(默认10GB);目的——避免单个Region过大导致查询/写入性能下降,实现负载均衡;分裂方式:默认按RowKey中间值分裂(预分区可自定义分裂点);②Region合并:触发条件——手动执行merge命令,或HBase后台线程检测到小Region过多(默认小于1GB);目的——减少Region数量,降低RegionServer管理开销,避免小Region过多导致的资源浪费。

HBase的预分区有什么作用?如何设计预分区?

答案:作用:①避免Region热点(单个Region承担所有读写);②减少Region分裂次数(初始就分配合理分区);③均衡

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档