- Hbase是什么
- 1、非关系型数据库与关系型数据库的对比
- 2、Hbase逻辑存储结构
- 3、Hbase物理存储结构
- 4、数据模型
- 5、Hbase基本架构
Hbase(Hadoop Database)是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。
- 分布式:通过zookeeper进行管理,提供高可用;
- 可扩展:Hbase基于HDFS,因此继承了HDFS的可扩展性;
- 支持海量存储:这也是(HDFS)可扩展性带来的;
Mysql是典型的关系型数据库,通过行列规整的存放在系统中,一次增加一整行或者删除一整行。
非关系型数据库,直接针对于一个字段。通过KV对的形式,直接对指定字段的值进行 *** 作。其中K为ROWKEY,全局唯一。V为字段的值。
以上为个人直观理解比较浅显,下面对Hbase的逻辑结构进行详细说明。
和关系型数据库相比,Hbase能够轻松应对字段变更的场景(下面有说明)。
2、Hbase逻辑存储结构Hbase逻辑结构主要由列族,列,RowKey,Region和Store等组成。它们之间的关系如下:
列族是对多个列的整体统称,因此列与列族之间是属于的关系,一个列只能属于一个列族。
RowKey是全局唯一,相当于主键。
Store是多条数据(RowKey)的一个列族的数据构成。
Region是多条数据(RowKey)的所有列族的数据构成。或者多条数据(RowKey)的多个Store组成。
3、Hbase物理存储结构 4、数据模型-
Name Space
类似于Mysql中的database,其中可以包含多张表。Hbase两个自带的命名空间,分别是hbase和default,hbase中存放的是Hbase内置的表,default表是用户默认使用的命名空间。
-
Table
Hbase定义表时只需要声明列族即可,不需要声明具体的列。这意味着,往Hbase写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,Hbase能够轻松应对字段变更的场景。
-
Row
Hbase表中的每行数据都由一个RowKey和多个Column(列)组成,数据是按照RowKey的字典顺序存储的,并且查询数据时只能根据RowKey进行检索。
-
Column
Hbase中的每个列都由Column Family(列族)和Column Qualifier(列限定符)进行限定。建表时,只需指明列族,而列限定符无需预先定义。
-
Time Stamp
用于标识数据的不同版本。
-
Cell
由=={rowkey, column Family:column Qualifier, time Stamp}==唯一确定的单元。cell中的数据全部是字节码形式存贮。
-
Region Server
是Region的管理者,其实现类为HRegionServer。主要作用:对数据进行get、put、delete;对Region进行splitRegion、compactRegion。
-
Master
是所有RegionServer的管理者,其实现类为HMaster。主要作用:对表进行create、delete、
alter;对RegionServer的 *** 作:分配regions到每个RegionServer,监控每个RegionServer的状态,负载均衡和故障转移。
-
Zookeeper
实现Hbase的高可用,RegionServer的监控、元数据的入口以及集群配置文件的维护。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)