hbase知识点

发布时间 2023-11-03 11:46:43作者: 唐钰逍遥

定义

Hbase 是一个分布式的、面向列的 NoSQL 数据库,是 Google BigTable 的开源实现,基于 Hadoop 和 Zookeeper 构建,可以提供海量结构化和半结构化数据的存储和随机访问。

NOSql和传统Sql的区别:

  1. 传统sql需要设计好结构化的建表语句,而NOSql不需要预先设计,想放什么字段,就放什么字段。

数据模型

Hbase 的数据模型类似于一个多维的稀疏表,由行键、列族、列限定符和时间戳组成。每个表可以有多个列族,每个列族可以有多个列限定符,每个单元格可以有多个版本,由时间戳标识。

存储架构

Hbase 的存储结构是基于 HDFS 的文件系统,每个表被划分为多个 Region,每个 Region 存储一部分行键的范围。每个 Region 由一个或多个 Store 组成,每个 Store 对应一个列族。每个 Store 由一个 MemStore 和多个 HFile 组成。MemStore 是一个内存缓冲区,用于存储写入的数据。HFile 是一个有序的、不可变的文件,用于存储持久化的数据。

读写流程

Hbase 的读写流程是通过客户端和 RegionServer 之间的 RPC 通信实现的。客户端首先从 Zookeeper 或者缓存中获取 Region 的位置信息,然后根据行键找到对应的 RegionServer,再根据列族找到对应的 Store,最后从 MemStore 和 HFile 中读取或写入数据。

分布式结构

Hbase 的分布式架构由三种角色组成:Master、RegionServer 和 Zookeeper。Master 负责管理表的元数据、负载均衡和故障恢复。RegionServer 负责处理客户端的请求、维护 Region 的生命周期和执行数据刷写和合并。Zookeeper 负责协调 Master 和 RegionServer 之间的状态信息和选举。