HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,是 Google BigTable 的开源实现。HBase 利用 Hadoop HDFS 作为其文件存储系统;Hadoop MapReduce 来处理 HBase 中的海量数据;ZooKeeper 来做协同服务。
HBase 主要由 ZooKeeper、HMaster 和 HRegionServer 组成。其中:
- ZooKeeper 可避免 HMaster 的单点故障,其 Master 选举机制可保证一个 Master 提供服务。
- HMaster 管理用户对表的增删改查操作,管理 HRegionServer 的负载均衡。并可调整 Region 的分布,在 HRegionServer 退出时迁移其内的 HRegion 到其他 HRegionServer 上。
- HRegionServer 是 HBase 中最核心的模块,其主要负责响应用户的 I/O 请求,向 HDFS 文件系统中读写数据。HRegionServer 内部管理了一系列 HRegion 对象,每个 HRegion 对应一个 Region,HRegion 中由多个 Store 组成。每个 Store 对应了 Column Family 的存储。