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

133 阅读2分钟

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

课程内容

01 适用场景

1.1 HBase的设计理念

  • 看来Google的三篇论文还是很有指导意义的,一定要抽时间看一下。

1.2 数据模型

  • 结合下面的表格来理解:
    • 行键:用来索引每一行
    • 列族:包含许多列
    • 列名:列名
    • 版本号:一个列名可以有许多版本值
    • 值:列名的值

  • 以Json格式理解数据模型

  • 物理结构
    • 仅单个物理文件内有序

1.3 适用场景

  • 引擎使用场景

1.4 小结

  1. 采用存算分离的架构;存储是用hdfs。是CP系统
  2. HBase是参考BigTable设计的,大数据开篇论文三篇之一
  3. HBase作为NoSQL分布式数据库与关系型数据库的区别
  4. HBase的数据模型,逻辑模型和物理模型的理解
  5. HBase的优缺点

02 架构设计

2.1 HBase架构设计

  • HMaster与RegionServer与主从架构相同,主结点负责元数据的管理、作业调度;从节点执行真正的读写服务。
  • 将整个Rowkey空间切分成很多段连续的分片,叫做region,交给RegionServer进行服务。

2.2 主要模块设计

  • 这些组件是根据HMaster不能的功能进行封装

2.3 小结

  1. HBase的整体架构,HMaster和RegionServer的功能以及组件
  2. 依赖Zookeeper,以及它的职责
  3. ThriftServer 主要职责

03 大数据支撑

3.1 水平扩展能力

  • 找中间Block的第一个keyvalue作为分裂的点

3.2 负责均衡策略

3.3 故障恢复机制

  • HMaster

  • RegionServer

\

\

3.4 小结

  1. Region的切分和Region碎片整合
  2. 负责均衡:分布region的数量
  3. 故障恢复:Zookeeper的恢复机制;HMaster的恢复流程,RegionServer的故障恢复流程
  4. Distributed Log Split原理和优化

04 最佳实践

4.1 RowKey设计策略

4.2 小结

  1. Rowkey设计策略,HBase只支持Rowkey索引,所以这个很重要。

\

\