HBase 杂谈与搭建

        引论: Apache HBase是一个开源的,分布式,非关系型的列式数据库,HBase位于Hadoop生态系统的结构化存储层,数据存储于分布式文件系统的HDFS并且使用Zookeeper作为协调服务。 HDFS为HBase提供了高可靠性的底层存储支持,MapReduce为HBase提供了高性能的计算能力。Zookeeper则为HBase提供了稳定的服务和实现恢复机制。

        HBase的设计目的是处理非常庞大的表,甚至可以使用普通的计算机处理超过10亿行的,有数百万列组成的表的数据。由于HBase依赖于Hadoop HDFS,因此它与Hadoop一样,主要依靠横向拓展,并不断增加廉价的商业服务器来提高计算和存储能力。

       HBase对表的处理具有如下特点:

         一个表可以有上亿行,上百万列。

        采用面向列的存储和权限控制

        为空(NULL)的列并不占用存储空间。

     HBase与传统关系数据库(RDBMS)的区别:

类别HBaseRDBMS
硬件架构分布式集群,硬件成本低廉传统多核系统,硬件成本昂贵
数据库大小PBGB,TB
数据分布方式稀疏的,多维的以行和列组织
数据类型只用简单的字符串类型,所有其他类型都由用户自定义丰富的数据类型
存储模式基于列存储基于表结构的行模式存储
数据修改可以保留旧版本数据,插入对应的新版本数据替换修改旧版本数据
事务支持只支持单个行级别对行和表全面支持
查询语言可以使用Java API,若结合其他框架,如Hive,可以使用HiveQLSQL
吞吐量百万查询每秒数千查询每秒
索引只支持行键,除非结合其他技术,如Hive支持

 

      HBase基本结构

HBase数据库的基本组成结构如下:

1.表(table)

在HBase中,数据存储在表中,表名是一个字符串(string),表有行和列组成。与关系型数据库(RDBMS)不同,HBase表是多维映射的。

2.行(row)

 HBase中的行由行键(rowkey)和一个或者多个列(column)组成。行键没有数据类型,总是视为字节数组byte[]。行键类似于关系数据库中的主键索引,在整个HBase表中是唯一的,但与RDBMS不同的是。行键按照字母顺序排序。例如.表中已有三条行键为1000000

和10000002,10000004的数据,当插入一条行键为10000003的数据时,该条数据不会排在最后,而是排在行键10000002和100000004的中间。因此,行键的设计非常重要,我们可以利用行键的这个特性将相关的数据排列在一起。

3.列族(column family)

 HBase列族由多个列组成,相当于将列进行分组。列的数量没有限制,一个列族可以有数百万个行。表中的每一行都有同样的列族。列族必须在表创建的时候指定,不能轻易修改,且数量不能太多,一般不超过3个。列族名的类型是字符串(String)。

4.列限定符(qualifier)

列限定符用于代表HBase表中列的名称,列族里的数据通过列限定符来定位。常见的定位格式为"family:qualifier" (列如:要定位到列族cf1中的列name,则使用cf1:name) 。HBase中的列族和列限定符都可以理解为列,只是级列不同,一个列族下面可以有多个类限定符,因此列族可以简单地理解为第一级列,列限定符是第二级列,两者是父子关系。与行键不同,列限定符没有数据类型,总是视为字节数组byte[].

5.单元格(cell)

单元格通过行键,列族和列限定符一起来定位。单元格包含值和时间戳。值没有数据类型,总是视为字符数组byte[] ,时间戳代表该值的版本,类型为long。默认情况下,时间戳表示数据写入服务器的时间,但是当数据放入单元格时,也可以指定不同的时间戳。每个单元格根据时间戳保存着同一份数据的多个版本,且降序排列,即最新的数据排在前面,这样有利于快速查找最新数据。

对单元格中的数据进行访问的时候会默认读取最新的值。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值