HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统
1、特点
1.海量存储
2.列式存储
这里的列式存储其实说的是列族存储,Hbase 是根据列族来存储数据的。列族下面可以
有非常多的列,列族在创建表的时候就必须指定。
3.易扩展
4.高并发
2、HBase架构
从图中可以看出 Hbase 是由 Client、Zookeeper、Master、HRegionServer、HDFS 等几个组件组成,下面来介绍一下几个组件的相关功能:
1)Client
Client 包含了访问 Hbase 的接口,另外 Client 还维护了对应的 cache 来加速 Hbase 的访
问,比如 cache 的.META.元数据的信息。
2)Zookeeper
HBase 通过 Zookeeper 来做 master 的高可用、RegionServer 的监控、元数据的入口以及
集群配置的维护等工作。具体工作如下:
通过 Zoopkeeper 来保证集群中只有 1 个 master 在运行,如果 master 异常,会通过竞争机制产生新的 master 提供服务
通过 Zoopkeeper 来监控 RegionServer 的状态,当 RegionSevrer 有异常的时候,通过回调的形式通知 Master RegionServer 上下线的信息
通过 Zoopkeeper 存储元数据的统一入口地址
3)Hmaster
master 节点的主要职责如下:
为 RegionServer 分配 Region维护整个集群的负载均衡,维护集群的元数据信息,发现失效的 Region,并将失效的 Region 分配到正常的 RegionServer 上 ,当 RegionSever 失效的时候,协调对应 Hlog 的拆分
4)HregionServer
HregionServer 直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下:
-
管理 master 为其分配的 Region处理来自客户端的读写请求
-
负责和底层 HDFS 的交互,存储数据到 HDFS
-
负责 Region 变大以后的拆分
-
负责 Storefile 的合并工作
5)HDFS
HDFS 为 Hbase 提供最终的底层数据存储服务,同时为 HBase 提供高可用(Hlog 存储在HDFS)的支持,具体功能概括如下:
提供元数据和表数据的底层分布式存储服务数据多副本,保证的高可靠和高可用性