初识hbase

来源:互联网 发布:torrentkitty新域名 编辑:程序博客网 时间:2024/05/19 22:59

数据库是保存数据的,在我们工作中是必须要接触到的,接下来说说hadoop中用到的数据库。

HBase:

一、说明是HBase?

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具。


如下图,是hbase的数据模型


1、逻辑数据模型

2、物理数据模型


3、HBASE中的每一张表,就是所谓的BigTable。稀疏表。
RowKey 和 ColumnKey 是二进制值byte[],按字典顺序排序;
Timestamp 是一个 64 位整数;
value 是一个未解释的字节数组byte[]。

表中的不同行可以拥有不同数量的成员。即支持“动态模式“模型

字符串、整数、二进制串甚至串行化的结构都可以作为行键
表按照行键的“逐字节排序”顺序对行进行有序化处理
表内数据非常‘稀疏’,不同的行的列的数完全目可以大不相同
可以只对一行上“锁”
对行的写操作是始终是“原子”的


列必须用‘族’(family)来定义
任意一列有如下形式
“族:标签”
其中,族和标签都可为任意形式的串
物理上将同“族”数据存储在一起
数据可通过时间戳区分版本



表是存放数据的。表由行和列组成
4、数据模型
 Row Key: 行键,Table的主键,Table中的记录按照Row Key排序
Timestamp: 时间戳,每次数据操作对应的时间戳,可以看作是数据的version number
Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中可以有任意多个Column组成,即Column Family支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。
5、物理存储
     Table 在行的方向上分割为多个HRegion,一个region由[startkey,endkey)表示,每个HRegion分散在不同的RegionServer中


6、架构体系
Client  包含访问hbase 的接口,client 维护着一些cache 来加快对hbase 的访问,比如regione 的位置信息
Zookeeper
 保证任何时候,集群中只有一个running master
 存贮所有Region 的寻址入口
 实时监控Region Server 的状态,将Region server 的上线和下线信息,实时通知给Master
 存储Hbase 的schema,包括有哪些table,每个table 有哪些column family
Master 可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行
为Region server 分配region
负责region server 的负载均衡
发现失效的region server 并重新分配其上的region


架构体系
Region Server
维护Master 分配给它的region,处理对这些region 的IO 请求
负责切分在运行过程中变得过大的region

       可以看出,client 访问hbase 上数据的过程并不需要master 参与,寻址访问zookeeper 和region server,数据读写访问regioneserver。HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。



HBase中有两张特殊的Table,-ROOT-和.META.
 .META.:记录了用户表的Region信息,.META.可以有多个regoin
 -ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region
 Zookeeper中记录了-ROOT-表的location

Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问








0 0
原创粉丝点击