- 1、Hbase简介
- 1.1、Hbase定义
- 1.2、特点
- 2、Hbase系统架构
- 2.1、Master
- 2.2、RegionSever
- 2.3、Region
- 2.4、Zookeeper
- 3、Hbase 数据模型
- 3.1、物理存储结构
- 3.2、数据模型
1.2、特点
Hbase – Hadoop Database,是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。
主要用来存储非结构化和半结构化的松散数据。(列存 NoSQL 数据库)
利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理Hbase中的海量数据,利用Zookeeper作为其分布式协同服务。
2、Hbase系统架构 2.1、MasterHbase中的表一般有这样的特点:
- 大:一个表可以有上亿行,上百万列
- 面向列:面向列(簇)的存储和权限控制,列(簇)独立检索。
- 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
- 无模式(Schema)
- 多版本;数据类型单一(都是字节数组)
2.2、RegionSever
- 为Region server分配region
- 负责Region server的负载均衡
- 发现失效的Region server并重新分配其上的region
- 对表的增删改 *** 作(create, delete, alter)
2.3、Region
- Region server维护region,处理对这些region的IO请求
- Region server负责切分在运行过程中变得过大的region
- 对于数据的 *** 作:get, put, delete;
2.4、Zookeeper
- Hbase自动把表水平划分成多个区域(region),每个region会保存一个表里面某段连续的数据;每个表一开始只有一个region,随着数据不断插入表,region不断增大,当增大到一个阀值的时候,region就会等分会两个新的region(裂变)。
- 当table中的行不断增多,就会有越来越多的region。这样一张完整的表被保存在多个Regionserver 上。
3、Hbase 数据模型 3.1、物理存储结构 3.2、数据模型
- Hbase 通过 Zookeeper 来做 Master 的高可用、RegionServer 的监控、元数据的入口以及集群配置的维护等工作。
Name Space
命名空间,类似于关系型数据库的 Databbase 概念,每个命名空间下有多个表。Hbase有两个自带的命名空间,分别是 hbase和 default,hbase 中存放的是Hbase 内置的表,default 表是用户默认使用的命名空间。Region
类似于关系型数据库的表概念。不同的是,Hbase 定义表时只需要声明列族即可,不需要声明具体的列。这意味着,往 Hbase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,Hbase 能够轻松应对字段变更的场景。Row Hbase
表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。Column
Hbase中的每个列都由 Column Family(列族)和Column Qualifier(列限定符)进行限定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。每一个列族对应一个storeTime Stamp
用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会自动为其加上该字段,其值为写入 Hbase 的时间。Cell
由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell 中的数据是没有类型的,全部是字节码形式存贮。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)