深入浅出HBase实战 | 青训营笔记

77 阅读2分钟

这是我参与「第四届青训营 -大数据场」笔记创作活动的第13篇笔记

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

Hbase简介

HBase是一个开源的NoSQL分布式数据库

采用存储计算分离架构

  1. 存储层基于HDFS存储数据,提供容错机制和高可靠性
  2. 计算层提供灵活快速的水平拓展、负载均衡和故障恢复能力

提供强一致语义,在CAP理论中属于CP系统

HBase数据模型

HBase以列族(column family)组织数据,以行键(rowkey),索引数据

  1. 列族需要在使用前预先创建,列名(column qualifier)不需要预先声明,因此支持半结构化数据模型
  2. 支持保留多个版本的数据,(行键+列族+列名+版本号)定位一个具体的值

image.png

逻辑结构

HBase是半结构化数据模型,以列族(column family)为单位存储数据,以行键(rowkey)索引数据

物理结构

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

  1. 每个版本的数据都携带全部行列信息
  2. 同一行,同一列族的数据物理上连续有序存储
  3. 同列族内的KeyValue按rowkey字典序升序,column qualifier升序,version降序排列
  4. 不同列族的数据存储在相互独立的物理文件,列族间不保证数据全局有序
  5. 同列族下不同物理文件间不保证数据全局有序
  6. 仅单个物理文件内有序

HBase数据模型的优缺点

image.png

HBase架构设计

HBase架构设计

主要组件包括

  1. HMaster:元数据管理、集群调度、保活
  2. RegionServer:提供数据读写服务,每个实例负责若干个互不重叠的rowkey区间内的数据
  3. ThriftServer:提供Thrift API读写的代理层

image.png

(未完待续)