HBase介绍

HBase介绍-CSDN博客

目录:
一、HBase简介
二、NoSQL和关系型数据库对比
三、HBase特点

四、HBase应用场景
五、HBase生态圈技术

一、HBase简介

HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL(非关系型) 数据库。

主要三特征:

  1. 是一个面向列存储的NoSQL数据库
  2. 采用的是Key/Value的存储方式
  3. 使用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/hbase01/
作者
叶域
发布于
2024年3月7日
许可协议