Hbase

简介

hadoop的局限

hadoop主要实现批量数据的处理,并且通过顺序方式访问数据
要查找数据必须搜索整个数据库,如果要进行随机读取数据,效率较低

HBase与NoSQL

  • NoSQL是一个通用术语,泛指一个数据库并不是使用SQL作为主要语言的非关系型数据库。
  • 谷歌的三篇论文,GFS、Mapreduce、BigTable 解决海量数据的传输、计算和存储问题。
  • Hbase是BigTable的开源版本,是建立在HDFS之上,提供高可靠性,高性能,列存储,可伸缩,实时读写NoSQL的数据库系统。
  • 适合数据量特别大的,几十亿数据秒读取。少量数据优势不明显。也就是支持HDFS的随机写操作(下载下来,重新写再重新上传)。
  • Hbase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库系统。
  • Hbase也是apache的顶级项目。

HBase的数据模型

逻辑上,Hbase的数据模型同关系型数据库类似,数据存储在一张表中,有行有列,但从HBase的底层物理存储结构(K-V)来看,更像是一个多维的地图。

Hbase架构很难。

HBase的逻辑架构

在这里插入图片描述

Rowkey :行键,必须存在,系统自带。插入数据时必须带有rowkey,相当于mysql的主键。按照字典序(按位比较)存储。

竖着按照列族切分。office_info、peronal_info均为列族。 和mysql的第一个区别,将很多的列分为不同的列族放在不同的文件夹存储。每个列族(有几百个列)放在一个文件夹存储。

横着按照rowkey的数据量切分,横向的切片叫做region。
store:真正在hdfs里分布存储的数据块。

HBase物理存储结构

在这里插入图片描述TimeStamp:版本及时间戳(实现随机写操作完全依赖时间戳)HBase项目中windows和linux的时间必须调一致。
取时间戳最大的作为最新的数据。可以做到时间同步。

Type:删除操作类型为Delete,插入数据操作类型为Put。

数据模型

  1. Name Space
    命名空间,相当于database,每个命名空间下有多个表,HBase有两个自带的命名空间,Hbase和的default。Hbase存放Hbase内置的表,default是用户默认使用的命名空间。

  2. Region
    类似于关系型数据库的表概念。不同的是HBase定义表只需要声明列族即可,不需要声明具体的列(name:张三,而不需要定义name)。这意味着,往Hbase写入数据时,字段可以动态、按需指定。因此,Hbase能够轻松应对字段变更的场景。

  3. Row
    Hbase表中的每行数据有一个RowKey和多个Column(列)组成,数据按照rowkey的字典数据存储,并且查询数据时只能根据rowkey进行检索,所以rowey的设计十分重要

  4. Column
    Hbase中每个列都有Column Family(列族)和Column Qualifier(列限定符)指定。

  5. Time Stamp
    用于表示数据的不同版本,每条数据写入的时候,如果不指定时间戳,系统就会自动为其加上该字段,值为写入Hbase的时间。

  6. Cell
    由rowkey,column Family:Collumn Qualifier,tim Stamp)唯一确定的单元。cell中的数据时没有类型的,全部都是字节码形式存储。即不区分int float等数据类型,hbase自带字节工具类。

Hbase基本结构(不完整版)

在这里插入图片描述Hbase的数据存在hdfs文件系统,存在Linux磁盘中。
Region放在Region Server中。

  • RegionServer的作用:Data:get,put(增改),delete 。Region:SplitRegion、compactRegion

Master(元数据的入口,管理表结构,DDL)DML管理数据
zookeeper帮助管理,实现高可用。

Master宕机的时候一段时间内,不影响数据的增删改查。

  • Master作用:Table:create/delete/alter 。RegionServer:分配regions到每个RegionServer,监控每个RegionServer的状态
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值