一、它是什么?

HBase是一个高可靠性、强一致性、高性能、面向列、可伸缩、实时读写的分布式开源NoSQL数据库。

它运行于HDFS文件系统之上,是Hadoop生态系统的一部分。

实现的编程语言为 Java。

二、谁需要用它?

其数据模型来自于谷歌的论文“Bigtable”:一个结构化数据的分布式存储系统”,主要用来存储非结构化和半结构化的松散数据,提供快速随机访问海量数据的能力,适用于写吞吐量大、海量数据存储以及分布式计算的场景。

三、它是如何存储数据的?

  1. namespace:命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。
  2. table:数据是以表的方式在HBase存储的,表是由行和列构成。
  3. column family:列族一些列的集合,一个列族所有列成员是有着相同的前缀。比如,列info:fn 和 info:ln都是列族info的成员,冒号(:)是列族的分隔符,用来区分前缀和列名。一个表可以包含多个列簇,列族必须在表建立的时候声明,column就不需要了,随时可以新建。建议一个表只声明一个列簇,所有的列都从属于列簇。
  4. cell:行和列的交叉点称之为cell,cell是版本化的,也即:{row, column, version} 元组构成一个cell;cell的内容是不可分割的字节数组
  5. Column-key(Qulifimer):列的名称
  6. 数据在HBase中的存储(物理上):HBASE简介
  7. 数据在HBase中的存储(逻辑上):HBASE简介

四、能存储多少数据?

1、rowkey:二进制码流,可以是任意字符串,最大长度 64kb

2、最大版本数量:没具体限制,默认为1

3、cell value:二进制码流,可以是任意字符串,无大小限制

相关文章: