文章目录
一、HBase简介
HBase是面向列的分布式存储系统(NoSQL数据库),是对Google论文BigTable的实现,具有数据存储量大、高性能、高扩展等特点。(BigTable是对HBase最形象的解释,大宽表,支持百万级列、亿万级数据,动态列)
二、系统原理
2.1 数据模型
HBase数据模型可以分为逻辑结构和物理结构。逻辑结构上,HBase的表由多行记录组成,每行由多个列簇组成,每个列簇由多个列组成;物理结构上,每张表按照RowKey被水平拆分成多个Region,每个Region按照Column Family被垂直拆分成多个Store(面向列存储的原因),每个单元格的数据由多个版本,按照KV存储,如下图所示:
- RowKey:唯一表示一行记录;
- Column Qualifier:创建表时只需要指定RowKey和Column Family,列是动态的,按需指定;
- Cell:<RowKey, Column Family, Column Qualifier>唯一确定的单元,每个单元格有多个版本,并且可以设置过期时间TTL;
- TimeStamp:用于标识数据的不同版本,每条数据写入时可以指定数据版本,如果不指定默认使用系统当前时间;
- Region:每个Region由多个Store组成,每个Store对应一个列簇;

2.2 系统架构
HBase的架构为主从架构,HMaster为管理节点,负责元信息和集群管理;HRegionServer为数据节点,负责数据的管理,数据最终存储在HDFS上,如下图所示:

本文深入探讨了HBase,一个基于列的分布式存储系统,详细阐述了其数据模型、系统架构,包括Region寻址、数据读写流程、Region拆分与合并,以及批量导入操作。此外,还介绍了LSM树对读性能的优化和HBase在不同场景下的应用,强调了RowKey设计的重要原则。
最低0.47元/天 解锁文章
788

被折叠的 条评论
为什么被折叠?



