这是我参与「第四届青训营 -大数据场」笔记创作活动的第13篇笔记
本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
Hbase简介
HBase是一个开源的NoSQL分布式数据库
采用存储计算分离架构
- 存储层基于HDFS存储数据,提供容错机制和高可靠性
- 计算层提供灵活快速的水平拓展、负载均衡和故障恢复能力
提供强一致语义,在CAP理论中属于CP系统
HBase数据模型
HBase以列族(column family)组织数据,以行键(rowkey),索引数据
- 列族需要在使用前预先创建,列名(column qualifier)不需要预先声明,因此支持半结构化数据模型
- 支持保留多个版本的数据,(行键+列族+列名+版本号)定位一个具体的值
逻辑结构
HBase是半结构化数据模型,以列族(column family)为单位存储数据,以行键(rowkey)索引数据
物理结构
物理数据结构最小单元是KeyValue结构
- 每个版本的数据都携带全部行列信息
- 同一行,同一列族的数据物理上连续有序存储
- 同列族内的KeyValue按rowkey字典序升序,column qualifier升序,version降序排列
- 不同列族的数据存储在相互独立的物理文件,列族间不保证数据全局有序
- 同列族下不同物理文件间不保证数据全局有序
- 仅单个物理文件内有序
HBase数据模型的优缺点
HBase架构设计
HBase架构设计
主要组件包括
- HMaster:元数据管理、集群调度、保活
- RegionServer:提供数据读写服务,每个实例负责若干个互不重叠的rowkey区间内的数据
- ThriftServer:提供Thrift API读写的代理层
(未完待续)