HBase介绍
目录:
一、HBase简介
二、NoSQL和关系型数据库对比
三、HBase特点
一、HBase简介
HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL(非关系型) 数据库。
主要三特征:
- 是一个面向列存储的NoSQL数据库
- 采用的是Key/Value的存储方式
- 使用HDFS作为存储并利用其可靠性
二、HBase架构
1、HBase物理架构

HMaster
作用
是HBase集群中的主节点,可以配置多个,用来实现HA
处理元数据的变更
监控RegionServer(心跳)
负责RegionServer的负载均衡
处理RegionServer故障转移(根据Hlog)
通过ZooKeeper发布自己的位置给客户端
RegionServer
RegionServer负责管理维护Region,负责存储HBase实际数据
- 一个RegionServer包含一个WAL(write ahead log)、一个BlockCache(块缓存)和多个Region
- 一个Region包含多个存储区Store
- 一个存储区由多个StoreFile和MemStore组成
- 一个StoreFile对应于一个HFile和一个列族
- HFile和WAL作为序列化文件保存在HDFS上
- Client和RegionServer交互
功能
- 负责管理HBase的实际数据
- 处理分配给它的Region
- 刷新缓存到HDFS
- 维护HLog
- 执行Compaction
- 负责处理Region分片
Region和Table
- 单个Table(表)被分区成大小大致相同的Region
- Region是HBase集群分布数据的最小单位
- Region被分配给集群中的RegionServer
- 一个Region只能分配给一个RegionServer
2、HBase逻辑架构 Row
- Rowkey(行键) 是唯一的并已经排序
- Schema可以定义何时插入记录
- 每个Row都可以定义自己的列,即使其他Row不用
- 相关列定义为列族
- 使用唯一的时间戳维护多个Row版本
- 在不同版本中值类型可以不同
- HBase数据全部以字节存储
3、HBase元数据管理
- 数据管理目录
- 系统目录表hbase:meta
- 存储元数据
- Zookeeper存储hbase:meta表的位置信息
- HBase实际数据存储在HDFS上
二、NoSQL和关系型数据库对比
对比 | NoSQL | 关系型数据库 |
---|---|---|
常用数据库 | HBase、MongoDB、Redis | Oracle、DB2、MySQL |
存储格式 | 文档、键值对、图结构 | 表格式,行和列 |
存储范围 | 鼓励冗余 | 规范性,避免重复 |
存储扩展 | 横向扩展、分布式 | 纵向扩展(横向扩展有限) |
查询方式 | 非结构化查询 | 结构化查询语句SQL |
事务 | 不支持事务一致性 | 支持事务 |
性能 | 读写性能高 | 读写性能差 |
成本 | 简单易部署,开源,成本低 | 成本高 |
三、HBase特点
数据访问速度快,相应时间约2-20毫秒
支持随机读写,每个节点20k~100k+ops/s
可拓展性,可拓展到20000+节点
高并发
四、HBase应用场景
1、增量数据-时间序列数据
高容量,高速写入
HBase之上有OpenTSDB模块,可以满足时序类场景,比如传感器,系统监控,股票行情监控等
2、信息交换-消息传递
高容量,高速读写
通信、消息同步的应用构建在HBase之上,比如:email,FaceBook等
3、内容服务-Web后端应用程序
高容量,高速读写
头条类、新闻类的新闻、网页、图片、图片存储在HBase中
五、HBase生态圈技术
名称 | 介绍 |
---|---|
Lily | 基于HBase的CRM |
OpenTSDB | HBase面向时间序列数据管理 |
Kylin | HBase上的OLAP |
Phoenix | SQL操作HBase工具 |
Splice Machine | 基于HBase的OLTP |
Apache Tophra | HBase事务支持 |
TiDB | 分布式SQL DB |
Apache Omid | 优化事务管理 |
Yarn | application timeline server v.2迁移到HBase |
Hive | metadata存储可以迁移到HBase |
Ambari | Metrics Server 将使用HBase做数据存储 |
六、总结
HBase 是NoSQL 数据库
特点:列存储、大容量,扩展性强,高可靠性,稀疏性
适合场景:单表超千万,上亿,且高并发!
生态圈庞大
HBase介绍
https://leaf-domain.gitee.io/2024/03/07/bigdata/hbase/hbase01/