Hbase学习(一):Hbase简介和数据模型

1. HBase简介

(1)Hbase 概念:

Google的BigTable的开源实现,是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库

(2)Hbase的运行基础:

利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理

HBase中的海量数据,利用Zookeeper作为其分布式协同服务

(3)Hbase支持从数据模型:

主要用来存储非结构化和半结构化的松散数据( NoSQL 数据库),不支持完整的关系数据模型

2. HBase数据模型(逻辑模型)

(1)逻辑模型概图:

Hbase学习(一):Hbase简介和数据模型

(2)逻辑模型中的核心概念解释

核心概念简介:

1)行键(Row Key),用来检索逻辑视图中一行的主键。

存储时,按Row Key的字典序排序;

行的一次读写是原子操作。

2)列族(Column Families),表每行的列被分组,每个组就称为一个列族。

列族需要先定义,列族中的列可以动态创建;

访问控制、磁盘和内存的使用统计都是以列族为单位的。

3)时间戳(Time Stamp),每次数据操作都会有对应的时间戳,数据的不同版本就是通过时间戳来索引的。

不同版本的数据按照时间戳倒序排序。

核心概念的注意事项:

第一:行键(Row Key) :

1)row key是用来检索记录的主键,访问hbase table中的行,只有三种方式

1 通过单个row key访问

2 通过row key的range

3 全表扫描

2)Row key按照字典顺序排序的

3)Row key行键 (Row key)可以是任意字符串(最大长度是64kb)

4)存储时,按Row Key的字典序排序;

5)行的一次读写是原子操作。

第二:列族(Column Families):

1)表每行的列被分组,每个组就称为一个列族

2)列名都以列族作为前缀。例如person:name, person:age都属于person这个列族

3) 列族需要先定义,列族中的列可以动态创建

4) 访问控制、磁盘和内存的使用统计都是以列族为单位的

第三:时间戳(Time Stamp):

1) 每次数据操作都会有对应的时间戳,数据的不同版本就是通过时间戳来索引的。

2)不同版本的数据按照时间戳倒序排序。

第四:Cell

1) HBase中通过row和columns确定的为一个存贮单元称为cell

2)单元格是有版本的;

3)单元格的内容是未解析的字节数组;

由 {row key, column( =<family> +<qualifier>), version} 唯一确定的单元。

3. HBase数据模型(物理模型)

(1)HBase在文件系统中命名空间的结构如下:

/hbase/<tablename>/<encoded-regionname>/<column-family>/<filename>

(2)在每个HRegion文件夹下会有一个.regioninfo文件,用来存储这个HRegion的元数据信息。

这些元数据信息可以帮助恢复被破坏的.META.表。

(3)HBase具体数据文件格式,HBase使用的是HFile作为存储文件格式;


Hbase学习(一):Hbase简介和数据模型

相关推荐