HBase概述

HBase是一个领先的NoSQL数据库
是一个面向列存储的NoSQL数据库
是一个分布式Hash Map,底层数据是Key-Value格式
基于Google Big Table论文
使用HDFS作为存储并利用其可靠性
HBase特点
数据访问速度快,响应时间约2-20毫秒
支持随机读写,每个节点20k~100k+ ops/s
可扩展性,可扩展到20,000+节点
高并发

应用场景:
1、增量数据-时间序列数据
高容量,高速写入
HBase之上有OpenTSDB模块,可以满足时序类场景
2、信息交换-消息传递
高容量,高速读写
通信、消息同步的应用构建在HBase之上,比如email,FaceBook等
3、内容服务-Web后端应用程序
高容量,高速读写
头条类、新闻类的的新闻、网页、图片存储在HBase中

二、物理架构

HBase采用Master/Slave架构

HMaster

RegionServer

Zookeeper

HBase Client

Region

HBase数据库存储的特点 hbase存储底层数据_HBase数据库存储的特点


1、HMaster的作用

是HBase集群的主节点,可以配置多个,用来实现HA

处理元数据的变更

监控RegionServer

负责RegionServer的负载均衡

处理RegionServer故障转移

通过ZooKeeper发布自己的位置给客户端

2、RegionServer负责管理维护Region,负责存储HBase实际数据

一个RegionServer包含一个WAL、一个BlockCache (读缓存)和多个Region

一个Region包含多个存储区,每个存储区对应一个列族

一个存储区由多个StoreFile和MemStore组成

一个StoreFile对应于一个HFile和一个列族

HFile和WAL作为序列化文件保存在HDFS上

Client与RegionServer交互

其功能:

负责管理HBase的实际数据

处理分配给它的Region

刷新缓存到HDFS

维护HLog

执行Compaction

负责处理Region分片

3:、Region和Table

单个Table(表)被分区成大小大致相同的Region

Region是HBase集群分布数据的最小单位

Region被分配给集群中的RegionServer

一个Region只能分配给一个RegionServer

HBase数据库存储的特点 hbase存储底层数据_HDFS_02

HBase逻辑架构 - Row

Rowkey(行键)是唯一的并已排序

Schema可以定义何时插入记录

每个Row都可以定义自己的列,即使其他Row不使用

相关列定义为列族

使用唯一时间戳维护多个Row版本

在不同版本中值类型可以不同

HBase数据全部以字节存储

HBase数据库存储的特点 hbase存储底层数据_元数据_03


HBase元数据管理

数据管理目录

系统目录表hbase:meta

存储元数据

ZooKeeper存储hbase:meta表的位置信息

HBase实际数据存储在HDFS上