青训营第十课HBase实战|青训营笔记

140 阅读2分钟

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

课堂内容

HBase基础介绍

  • 什么是HBase:NoSQL数据库 image.png
  • 与关系型数据库的区别:稀疏存储,rowkey索引,按需读列 image.png
  • HBase数据模型(行键+列族+列名+版本号) image.png 代码实现 image.png
  • 数据模型的物理结构 image.png
  • HBase适用场景 image.png
  • HBase典型应用 image.png
  • 使用场景
    例一 image.png 例二 image.png 例三 image.png 例四 image.png
  • HBase优劣

image.png

HBase架构设计

  • 整体组件架构

image.png

  • HMaster:跟别的Master一样的东西

image.png

  • HMaster的组件

image.png

  • RegionServer:执行部门

image.png

  • RegionServer的组件

image.png

  • zookeeper:这个大家都知道的东西

image.png

  • ThriftServer:接口

image.png

大数据支撑

  • HBase在大数据生态的定位:海量结构化数据存储,灵活,精细化

image.png

  • 水平扩展能力:通过增加RegionServer的数量来实现

image.png

  • Region热点切分:主要的问题就是分摊负载,我们首先会选择数据量最大的那一部分切成上下两份,从Region到Column Family到HFile到DataBlock,选择DataBlock的中间一块的第一条KV为切点,上下切开。同时这种切分不搬迁数据,只是生成一个新的目录指定到对应的区域。

image.png

image.png

image.png

  • Region切分的流程设计

image.png

  • Region碎片整理:简单讲就是把小块的Region合并,同时保持一个原则Region要求相邻合并。

image.png

  • Region负载均衡:三种Balancer(按平均数量,按cost,按顺序)

image.png

image.png

image.png

  • 故障恢复机制(HMaster):通过zookeeper的从实例节点监听,主实例节点坏了,会重新选主。

image.png

  • 故障恢复机制(RegionServer):通过zookeeper,HMaster共同调度,主要是找HDFS中的WAL回放数据来实现恢复。

image.png

image.png

  • Distributed Log Split原理:WAL回放的过程,详细看图就行

image.png

image.png

  • Distributed Log Split优化

image.png

最佳实战分享

  • Rowkey设计优化

image.png

  • Column Family设计优化

image.png

  • 参数优化

image.png

  • ByteTable优势

image.png