HBase是什么
HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。
适用于随机读写或者随机访问大规模数据集时
HBase数据模型
- 逻辑结构
- 物理结构
- 数据模型
- namespace(命名空间)
- region:类似于关系数据库中表的概念,HBase定义表时只需声明列族
- Row:每行数据 都由一个Rowkey和多个Column组成
- Column:每个Column都由列族和列限定符进行限定例如info:name,info:age
- timestamp(时间戳):用于标识数据的不同版本
- cell(单元):由{rowkey,column Family: column Qualifier, timestamp}唯一确定的,数据是没有类型的,全都是字节码形式存储
HBase基本架构
- Region Server:是region的管理者,实现类是
HRegionServer
,主要作用是- 对数据的操作:
get
、put
、delete
; - 对于Region的操作:
splitRegion
、compactRegion
- 对数据的操作:
- Master:是所有RegionServer的管理者,实现类是
HMaster
,主要作用- 对表的操作:
create
、delete
、alter
- 对于RegionServer的操作:分配Regions到每个RegionServer,监控每个RegionServer的状态,负载均衡和故障转移
- 对表的操作:
- Zookeeper:HBase通过Zookeeper来做Master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作
- HDFS: 为HBase 提供最终底层数据存储服务