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

172 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的的第10天

一、适用场景

1.1什么是Hbase

HBase是个开源的 NoSQL分布式数据库,是Apache软件基金会顶级项目之一。参考Google BigTable的设计,对稀疏表提供更高的存储空间使用率和读写效率。

采用存储计算分离架构。

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

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

Consislency, Awailabilily, Parllion Tdlerance

1.2 Hbase和关系型数据库的区别

image.png

1.3 Hbase 数据模型

image.png hbase数据模型-逻辑结构

image.png

通过非关系型视图理解HBase数据模型:

  • 适合稀疏数据,缺省列不占用存储空间。
  • 通过(rowkey, column family, column qualifer, version)
  • 唯一指定一个具体的值。
  • 允许批量读取多行的部分列族列数据。

hbase数据模型-物理结构

image.png

1.4 使用场景

image.png

使用场景-典型应用

image.png

使用场景-半结构化/字典序有序索引的数据

image.png

使用场景- "近在线”海量分布式KV /宽表存储

image.png

image.png

使用场景写密集型的高吞吐场景

image.png

1.5 Hbase数据模型的优缺点

image.png

二、架构设计

2.1 Hbase 架构设计

image.png

2.2 Hmaster 主要职责

image.png

Hmaster-主要组件

image.png

2.3 RegionServer 主要职责

image.png

RegionServer 主要组件

image.png

2.4 ZooKeeper主要职责

image.png

2.5 ThriftServer 主要职责

image.png

三、大数据支撑

3.1 Hbase 在大数据生态的定位

image.png

3.2 水平扩展能力

image.png

3.3Region 热点切分

image.png

Region 热点切分-切分点选取

image.png

image.png

image.png

image.png

Region 热点切分-切分过程

image.png

image.png

image.png

image.png

Region 热点切分-流程设计

image.png

3.4 Region 碎片整合

image.png

流程设计

image.png

3.5 Region 负载均衡

image.png

3.6 故障恢复机制-HMaster

image.png

3.7 Distributed Log Split原理

image.png

四、最佳实践

4.1 Rowkey 设计策略

image.png

4.2 Column Family 设计策略

image.png

4.3 参数调优经验

image.png

4.4 ByteTable字节跳动自研分布式表格存储系统

image.png