Hbase相关面试题

本文深入探讨了HBase的架构和基本原理,包括其与传统关系型数据库的区别、读写性能对比、Region切分过程以及读取数据流程。讨论了HBase在列存储、时间版本和可扩展性方面的特点,并提出其适用场景。此外,还涵盖了HBase在面试中的常见问题,如操作API、数据存储、Spark读取HBase及二级索引等。
摘要由CSDN通过智能技术生成

他人真实面试问题

版权声明:本文为博主原创文章,转载请注明出处,欢迎交流。QQ911283415

1.HBase的架构和基本原理

Hbase以表的方式组织数据,
表由行(Row)以及列(Column)组成,行由row key和一个或多个列及其值组成(存储是按照row key的字典顺序排序,row key的设计非常重要!!),
列必须属于某一列族(Column family),一个列族可以有一各或多个列(一列由列簇和列修饰符组成,他们通常由冒号(:) 分隔),其在存储架构中就是一个Hfile
Hbase中的列可以达到百万级,列中的数据可以是稀疏的,空值并不占用存储空间。
数据按主键排序,同时表按主键划分为多个Region。底层是LSM树(Long-Structed Merge Tree)。

对于以上叙述,表的简略结构:(逻辑模型)

这里写图片描述
注1:建议把Hbase理解为一个多维Map

Hbase简略架构图如下:

这里写图片描述

接下来对Zookeeper、HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、HLog等做个简单叙述:

Zookeeper

  • 保证任何时候,集群中只有一个master(负责多HMaster的选举)
  • 存贮所有Region的寻址入口
  • 实时监控RegionServer的状态、将RegionServer的上线和下线信息实时通知给Master(服务器之间状态同步)
  • 存储Hbase的schema(元数据信息)。包括有哪些table、每个table有哪些column family等

HMaster
(主要负责table和region的管理工作)

  • Region分裂后,为RegionServer分配新的Region
  • 负责RegionServer的负载均衡,调整region的分配
  • 发现失效的region server并重新分配其上的region
    (Region自动切分是HBase能够拥有良好扩张性的最重要因素之一,见转载文章:http://developer.51cto.com/art/201708/549419.htm
  • 管理用户对table的增、删、改、查操作
  • 监听zk,基于zookeeper感应rs的上下线
  • 监听zk,基于zookeeper来保证HA
  • 处理schema更新请求 (管理用户对表的增删修改)
  • 不参与对表的读写访问
  • 负载很低
  • 无SPOF(单点故障)
  • 在一个RegionServer死机后,负责失效节点的Region的迁移

HRegionServer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值