Hbase 基础知识

Hbase 基础知识

Hbase 架构

Hbase 包含了3个重要组件: zookeeper   HMaster  和HRegionServer 

Zookeeper 为整个Hbase 提供协助服务,包括: 
存放整个Hbase 集群的元数据库以及集群的状态信息,实现HMaster 主从节点的failover,Zookeeper 为Hbase集群提供协调服务,它管理着HMaster 和HRegionServer 的状态(available/alive) 等,并且会在它们宕机时通知给HMaster,从而HMaster 可以实现HMaster 之间的failover,或对宕机的HRegionServer 中的HRegion 集合的修复。ZooKeeper 集群本身使用一致性协议(PAXOS协议) 保证每个节点状态的一致性


HMaster:
HMaster 主要用于监控和操作集群中所有HRegionServer。HMaster 没有单点问题,Hbase 中可以启动多个HMaster,通过Zookeeper 的MasterELection 机制保证总有一个Master 在运行,管理所有的HRegionServer,告诉其需要维护哪些HRegion,并监控所有的HRegionServer 的运行状态,当一个新的HRegionServer 登录到HMaster时,HMaster 会告诉它等待分配的数据;而当某个HRegion 死机时,HMaster 会把它负责的所有HRegion 标记为未分配,然后再把它们分配到其他HRegionServer中,HMaster 没有单点问题,Hbase 可以启动多个HMaster,通过Zookeeper 的选举机制保证集群中总有一个HMaster 运行,从而提高集群的可用性。 

HMaster 体系结构

Master 
  为Region server 分配region 
  负责Region server的负载均衡
  发现失效的Region server 并重新分配其上的region 
  管理用户对table 的增删改查操作

Region Server 
   Region server 维护region,处理对这些region的IO 请求
   Region server 负责切分在运行国产中变的过大的region  

ROOT 与.META表
  ROOT  
    表包含META 表所在的区域列表,该表只会有一个HRegion; 
    Zookeeper 中记录了ROOT 表的location 
  META