HBase是基于Google BigTable 模型开发的,典型的key/value系统。它建立在HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的NoSQL数据库系统,是Apache Hadoop生态系统中的重要组成部分,主要用于海量结构化和半结构化数据存储。
HBase学习知识点详解
一、HBase概述
HBase是一个分布式、可扩展的大规模数据存储系统,基于Google的BigTable模型设计并实现。作为一个非关系型数据库(NoSQL),HBase提供高可靠性和高性能的数据存储能力,特别适用于处理海量的结构化或半结构化数据。
- 架构:HBase建立在Hadoop分布式文件系统(HDFS)之上,利用HDFS提供的高容错性和分布式存储能力。
- 数据模型:HBase采用列族(Column Family)的数据模型,数据按行键(Row Key)排序存储,支持实时读写操作。
特性:
- 高可靠性:支持数据副本,确保数据高可用和持久性。
- 高性能:通过缓存机制和列族存储优化,提供快速的数据访问。
- 可伸缩性:支持水平扩展,通过增加节点可轻松扩展系统的存储和处理能力。
- 实时读写:提供低延迟的数据访问。
- 数据类型单一:所有数据存储为字节数组。
二、HBase表结构及逻辑视图
HBase中的数据以表的形式存储,每个表由行和列组成,其中列被组织成多个列族。
- 表结构:一张表可能包含数十亿行及成千上万的列。
- 无模式:每行有一个可排序的主键(Row Key)和任意数量的列,列可动态添加。
- 面向列:列族是数据存储的基本单位,数据按列族组织存储,支持列族级权限控制。
- 稀疏性:不存在的列不占用存储空间,允许表格非常稀疏。
Row Key:
- Row Key用于唯一标识一条记录,是HBase中的关键概念之一。
- 访问数据的方式包括通过单个Row Key查询、通过Row Key的范围查询或进行全表扫描。
- Row Key在内部以字节数组形式存储,HBase会根据Row Key对数据进行排序。设计合理的Row Key能够显著提升数据访问效率。