Hbase物理架构详解

Hbase体系结构
HBase同样采用Master/Slaves的主从服务器结构,他由一个HMaster和多个HRegionServer构成而所有服务器都是通过Zookeeper协调并处理个服务器运行期间可能遇见的错误HMaster负责管理所有的HRegionServer,各HRegionServer负责存储许多HRegion,每一个HRegion是对HBase逻辑表的分块。如下图所示:
Hbase物理架构详解_第1张图片
1.HRegion
HBase使用表存储数据集,当表的大小超过存储值设定时,HBase会自动将表划分为不同的区域(Region),每一个区域称为一个HRegion类似于HDFS中的文件与文件块的概念。一个HRegion上保存着一个表中的一段连续的数据。
最开始,一个表只有一个HRegion,随着HRegion逐渐变大,知道超出设定的阈值大小,便会在某行的边界把表分成两个大小基本相同的HRegion,称为HRegion分裂
2.HStore
每个HRegion由多个HSore组成,每个HStore对应表中的一个列族的存储。
HStore由两部分组成:MemStore和StoreFile,用户写入的数据首先放入MemStore,当MemStore(128M)满了以后再刷入StoreFile(30M)。StoreFile是HBase中的最小存储单元,底层最终由HFile实现。
3.HRegionServer
一台机器上只运行一个HRegionServer,HRegionServer包含两个部分:HLog和HRegion。
Hlog用于存储数据日志。到达HRegion的写操作首先被追加导日志中,然后才被加入内存中的MemStore。Hlog文件主要用于故障恢复。例如某台HRegionServer发生故障后,那么保存在HRegionServer中的HRegion会被分配到心得HRegionServer中,新的HRegionServer在加载HRegion的时候通过HLog来对数据进行恢复的。
HRegionServer由多个HRegion组成,每个HRegion对应表中的一个分块,HRegion由多个HStore组成,而HStore对应着一个列族。而HRegion只会被一个HRegionServer管理
3.HMaster
每个HRegionServer都会和HMaster服务器通信HMaster主要任务就是告诉HRegionServer需要存储哪些HRegion
在HBase中可以启动多个HMaster, 通过Zookeeper的Master选举机制来保证系统中总有一个Master在运行,HMaster主要一下功能:

  • 是HBase集群的主节点,可以配置多个,用来实现HA
  • 处理元数据的变更
  • 监控RegionServer
  • 负责RegionServer的负载均衡:存数据时根据HRegionServer的状态来分配数据
  • 处理RegionServer故障转移
  • 通过ZooKeeper发布自己的位置给客户端

你可能感兴趣的:(hadoop,大数据,hbase)