Hbase角色和架构


文章目录


HBase角色

HMaster

功能:

  1. 监控RegionServer
  2. 处理RegionServer故障转移
  3. 处理元数据变更
  4. 处理region的分配或移除
  5. 空闲时对数据进行负载均衡
  6. 通过zookeeper发布自己的位置给客户端

RegionServer

功能

  1. 负责存储Hbase的实际数据
  2. 处理分配给它的region
  3. 刷新缓存到HDFS上
  4. 维护HLog
  5. 执行压缩
  6. 负责处理Region分片

组件

1) Write-Ahead logs

Hbase的修改记录,当对HBase读写数据的时候,数据不是直接写进磁盘,它会在内存中保留一段时间(时间以及数据量阈值可以设定),但是把数据保存在内存中可能有更高概率引起数据丢失,为了解决这个问题,数据会写在一个Write-Ahead logfile 文件中,然后写入内存,所以在系统出现故障时,数据可以通过这个日志文件重建

2) HFile

磁盘上保存原始数据的实际物理文件,是实际的存储文件

3) Store

HFile 存储在 Store 中,一个 Store 对应 HBase 表中的一个列族

4) MemStore

内存存储,位于内存中,用来保存当前数据操作,所以当数据保存在WAL中之后,RegionServer会在内存中存储键值对

5) Region

Hbase表分片,Hbase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有不同的region

HBase的架构

HBase 一种是作为存储的分布式文件系统,另一种是作为数据处理模型的 MR 框架。因为日常开发人员比较熟练的是结构化的数据进行处理,但是在 HDFS 直接存储的文件往往不具有结构化,所以催生出了 HBase 在 HDFS 上的操作。如果需要查询数据,只需要通过键值便可以成功访问.

Hbase角色和架构

虽然HBase内置有zookeeper,但是一般会有其他zookeeper集群来监管master和regionServer,zookeeper通过选举,保证在任何时候,集群中只有一个活跃的HMaster,HMaster与HRegionServer启动时会向zookeeper注册,存储所有HRegion的寻址入口,实时监控HRegionserver的上线和下线信息,并实时通知给HMaster,存储Hbase的schema和table元数据,默认情况下,Hbase管理zookeeper实例,zookeeper的引入使得HMaster不再是单点故障,一般情况下会启动两个HMaster,非Active的HMaster会定期和Active HMaster通信以获取其最新状态,从而保证它实时更新,如果启动了多个HMaster反而增加了Active HMaster的负担

一个RegionServer可以包含多个HRegion,每个RegionServer维护一个HLog,和多个HFiles以及对应的MemStore,RegionServer运行在DataNode上,数量可以与DataNode数量一致

Hbase角色和架构

上一篇:从零开始搭建个人大数据集群(5)——HBASE安装


下一篇:HBase第一天学习