一、HBase在hadoop中的位置
Hbase是一个开源的、面向列的、适合存储海量非结构化或半结构化数据的、具备高可用、高性能、可灵活扩展、支持实时读写的分布式存储系统。
HBase表的典型特性:
- 大表:支持一个表可以有上亿行、上百万列;
- 面向列:面向列(簇)的存储、检索与权限控制;
- 稀疏性:为null的字段不占用空间。
二、Hbase的部署结构
三、HBase系统架构
四、Hbase数据模型
Row Key | Time Stamp | Column Family: cf1 | column Family: cf2 |
---|---|---|---|
rk1 | t8 | cf1: c1 = “Hello” | cf2: c1 = " 数据模型" |
rk1 | t5 | cf2: c1 = " 数据模型" | |
rk1 | t3 | cf1: c1 = “Hi” | cf2: c1 = " 数据模型" |
rk1 | t2 | cf1: c1 = “Hello” | cf2: c1 = " 数据模型" |
存储在HBase的表每一行都有可排序的关键字rowkey和任意列(column or column family)。在Hbase中仅能通过rowkey和版本号来检索数据。
rowkey:每一行的主键,所有数据按排序后的rowkey存储。
Time Stamp:版本号通过时间戳表示,每次数据更改都会留存版本号,多个版本按时间倒排。
列簇: 一般讲多个列归结为一个列簇,CF可在写入数据时随意添加。
五 Hbase的物理存储结构