这是我参与「第四届青训营 」笔记创作活动的第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据存储底座。