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