hbase基础知识

一、简介

  hbase是hadoop中的数据库,是一个高可靠、高性能、面向列、可伸缩的分别是存储系统,利用hbase技术可在廉价

的PC Server上搭建起大规模的结构化存储集群。

  hbase是google bigtable的开源实现,类似google bigtable利用GFS作为其文件存储系统,hbase利用hadoop

的hdfs作为它的文件存储系统;google运行MapReduce来处理bigtable的海量数据,同样的,hbase也利用hadoop

MR来处理hbase中的海量数据;google bigtable 利用chubby作为协同服务,hbase利用zookeeper作为对应。

  hbase的表一般有如下的特点:

    1、很大:一个表可以有上亿行,上百万列;

    2、面向列:面向列(族)的存储和权限控制,列(族)独立检索;

    3、稀疏:对于未空null的列,并不占用存储空间,所以,表可以设计得非常疏松。

  下面我们来看看hbase在hadoop生态圈中的位置,先上图

  

    该图中,hbase位于结构化存储层,hadoop HDFS为hbase提供了高可靠性的低层存储支持,hadoop

  MapReduce 为hbase提供了并行计算能力,zookeeper为hbase提供了稳定的协调同步服务和failover机制。

    另外,pig和hive为hbase提供了高层语言的支持,使得在hbase上进行数据统计和分析处理变得非常简单。

  Sqoop为hbase提供了方便的RDBMS数据导入导出功能,这样,传统的数据库数据向hbase迁移就变得非常方便。

 

二、数据模型

  hbase以表的形式存储数据,由行和列组成。列隶属于若干个列族。

  

Row Key

   行键,用来检索记录的主键。访问hbase table中的行,有三种方式:

   1、通过单个row key访问;

   2、通过row key的range(startRowkey~endRowkey);

   3、全表扫描scan.

   row key 可以是任意字符串(最大长度是64KB,实际应用中长度一般为10~100bytes),

在hbase内部,row key 保存为字节数组。

  存储时,数据按照row key的字典序(byte order)排序存储,所以在设计row key时,要充分利

用这个特性,将经常一起读写的行放在一起。

列族:

  hbase表中的每个列,都归属于某个列族。列族是表的schema的一部分,而列不是,必须在使用表

之前定义。列名都以列族作为前缀。e.g. info:username, info:age都属于info这个列族。访问控制、磁

盘和内存的使用统计都是在列族层面进行的。实际应用中,列族的控制权限帮助我们管理不同类型的应用:

我们允许一些应用可以添加新的基本数据、一些应用可以读取基本数据并创建继承的列族、一些应用只允

许浏览数据。

TimeStamp:

  时间戳对应着每次数据操作所关联的时间,可以由系统自动生成,也可以由用户显式赋值。

注意:如果应用程序需要避免数据版本的冲突,则必须显式生成时间戳。

hbase提供了两种数据版本回收方式:

  1、对每个数据单元,只存储指定个数的最新版本;

  2、保存最近一段时间内的版本(如3天)。

Cell:

  由row key、column(=family + qualifier)、timeStamp唯一确定。

cell中的数据没有类型之分,全部是以字节码的形式存储的。

 

三、物理存储

 

  

 

 

 

 

 

转载于:https://www.cnblogs.com/youngxiaobin/p/3475797.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值