了解Hbase吗?说下Hbase的架构原理

了解Hbase吗?说下Hbase的架构原理

我是精神抖擞王大鹏,不卑不亢,和蔼可亲~
计算机硕士,目前小米大数据开发。日常会分享总结一些自己面试实际问题的回答,欢迎一起讨论。
公众号:diting_dapeng

基本描述

Hbase作为NoSQL数据库的代表,属于三驾马车之一BigTable的对应实现。问到数据库的问题时,常常会问到行列式存储关系数据库的不足,从而引出Hbase的问题。再者根据”实时即未来“理念,Hbase也经常作为流式数据的缓存存储。

下面总结了下自己被问到这类题目的回答,依然是–最好能边讲边画出图

总结回答

1 简单解释Hbase设计的目的

ok,首先Hbase设计的目的是,去存储可伸缩的海量数据,从而实现面向在线业务的实时数据访问延迟。

2 概况Hbase的架构模型

Hbase是Master-Slaver的模型,由一个管理集群的Master节点及多个实际服务用户读写的RegionServer节点组成,并通过Zookeeper节点来协调Master对集群进行管理。

3 具体说下Hbase架构的各个部分

具体说的话,Hbase架构主要包含五个部分:

  • 首先是Hbase客户端,开始时,客户端client会通过元数据表来定位到目标数据的RegionServer,同时会把这些元数据缓存到客户端本地以方便处理;
  • 第二是Zookeeper,Zookeeper用来协调管理分布式应用程序。主要体现在实现Master的高可用,当active master宕机时,zookeeper会通过选举机制选举出新的master工作。
  • 第三是Master,Master主要负责管理集群中所有RegionServer。Region的信息会记录在Master服务器上,client会通过master来查找Region,得到Region所在的服务器RegionServer,从而得到需要访问的数据。
  • 第四是RegionServer。RegionServer主要来响应用户对数据的读写的请求。Hbase中的数据以Hregion为单位来管理,HRegion和RegionServer为多对多的关系,一个表的HRegion会分布在集群中多台的RegionServer上,一个RegionServer也会管理多个Region。当HRegion写入数据大于阈值时,就会水平分裂成两个HRegion。
  • 第五是HDFS。Hbase中所有数据都存储在HDFS中,包括用户数据文件、Hlog日志文件。Hbase会通过封装好的DFSClient,来对HDFS的实际数据进行读写访问。

相关问题

  • Hbase和mysql的比较
  • HBase的RowKey、列簇怎么设计的
  • hive和hbase 区别?
  • 为什么选用hbase,hbase读数据流程说一下
  • hbase的region切分
  • rowkey设计原则