深入浅出的HBASE|青训营笔记

66 阅读2分钟

这是我参与【第四届青训营-大数据场】笔记创作活动的第10天

HDFS 是一种开源的分布式文件系统,基于常见商用有硬件构建海量大规模存储集群,提供极低 的存储成本,极大的存储容量支持。

HDFS 提供高可靠性的数据保障,通常采用三副本冗余存储数据到不同的机器来实现容灾备份 能力。

HBase 基于 HDFS 实现存储计算分离架构的分布式表表格存储服务。

HBase适用环境

什么是HBase

HBase是一个开源的 NoSQL 分布式数据库,是Apache软件基金会顶级项目之一 参考 Google BigTable 的设计,对稀疏表提供更高的存储空间使用率和读写效率。 采用存储计算分离架构 -存储层基于 HDFS 存储数据,提供容错机制和高可靠性;

  • 计算层提供灵活快速的水平扩展、负载均衡和故障恢复能力; 提供强一致语义,在 CAP 理论中属于 CP 系统。

*Consistency,Availability,Partition Tolerance HBase 以列族(column family)组织数据,以行键(rowkey)索引数据。 列族需要在使用前预先创建,列名(column qualifier)不需要预先声明,因此支持半结构化数据模型。 支持保留多个版本的数据,(行键 +列族 +列名 +版本号)定位一个具体的值。

image.png HBase 是半结构化数据模型。以列族(column family)为单位存储数据,以行键(rowkey)索引数据 列族需要在使用前预先创建,列名(column qualifier)不需要预先声明,因此支持半结构化数据模型。 支持保留多个版本的数据,(行键 +列族 +列名 +版本号)定位一个具体值。 通过非关系型视图理解 HBase 数据模型:

适合稀疏数据,缺省列不占用存储空间。

通过(rowkey, column family, column qualifier, version )唯一指定一个具体的值。

允许批量读取多行的部分列族/列数据。

物理数据结构最小单元是 KeyValue结构:

√ 每个版本的数据都携带全部行列信息。 √ 同一行,同一列族的数据物理上连续有序存储。 同列族内的 KeyValue 按 rowkey 字典序升序, column qualifier 升序,version 降序排列。

不同列族的数据存储在相互独立的物理文件,列族间 不保证数据全局有序。 同列族下不同物理文件间不保证数据全局有序。 √ 仅单个物理文件内有序。