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

90 阅读2分钟

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

是HBase概述

  • HBase 是一个开源的NoSQL分布式数据库,是Apache软件基金会顶级项目之一。
  • 参考Google BigTable的设计,对稀疏表提供更高的存储空间使用率和读写效率。
  • 采用存储计算分离架构,
    • 存储层基于HDFS存储数据,提供容错机制和高可靠性;
    • 计算层提供灵活快速的水平扩展、负载均衡和故障恢复能力
  • 提供强一致语义,在CAP理论中属于CP系统

HBase 数据摸型-物理结构

  • 物理数据结构最小单元是KeyValue结构
    • 每个版本的数据携带全部行列信息。
    • 同一行,同一列族的数据物理上连续有序存储。
    • 同列族内的KeyValue按rowkey字典序升 序,column qualifier升序,version降序排列。
    • 不同列族的数据存储在相互独立的物理文件,列族间 不保正数据全局有序。
    • 同列族下不同物理文件间不保证数据全局有序。
    • 仅单个物理文件内有序。

HBase适用场景:

  • “近在线”的海量分布式KV/宽表存储,数据量级可达到PB级以上
  • 写密集型、高吞吐应用,可接受一定程度的时延抖动
  • 字典序主键索引、批量顺序扫描多行数据的场景
  • Hadoop大据生态友好兼容
  • 半结构化数据模型,行列稀疏的数据分布,动态增减列名
  • 敏捷平滑的水平扩展能力,快响应数据体量、流量变化

使用场景-典型应用

  • 电商订单数据:查询最新待处理订单进度
  • 搜索推荐引擎:存储原始据、排序推荐结果
  • 广告数据流:触达、点击、转化等事件流
  • 用户交互数据:IM、Email、.点赞、搜索
  • 时序数据弱引擎:日志、监控(OpenTSDB)
  • 图存储擎:JanusGraph
  • 大数据生态:高度融入Hadoop生态

HBase架构设计

主要组件包括:

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

依赖组件包括:

  • Zookeeper:分布式一致性共识协作管理,例如 HMaster选主、任务分发、元数据变更管理等
  • HDFS:分布式文件系统,HBase据存储底座。