这是我参与「第四届青训营 」笔记创作活动的的第10天
一、HBase简介
1.HBase概念
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。 利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具。
2.HBase特点
大:一个表可以有数十亿行,上百万列; 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的- 增加,同一张表中不同的行可以有截然不同的列; 面向列:面向列(族)的存储和权限控制,列(族)独立检索; 稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏; 数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳; 数据类型单一:HBase中的数据都是字符串,没有类型
3.引入HBase的原因
传统关系型数据库系统已无法适应大型分布式数据存储的需要 改良的关系数据库(副本、分区等)难于安装与维护 关系模型对数据的操作使数据的存贮变得复杂 HBase从设计理念上就为可扩展做好了充分准备 空间的扩展只需要加入存储结点,使用‘表’的概念,但不同于关系数据库,HBase实质上是一张极大的、非常稀疏的,存储在分布式文件系统上的表(不支持SQL)
4.HBase数据模型
数据存放在带标签的表中 Tables 由 rows和columns组成. Table cells单元格有版本 是HBase插入单元格时候的时间戳. 列组成“列族” 所有的列族成员有相同的前缀. 物理上,所有的列族成员都一起存放在文件系统中 HBase实际上就是一个面向列族的存储器 HBase中的每一张表,就是所谓的BigTable。稀疏表。 RowKey 和 ColumnKey 是二进制值byte[],按字典顺序排序 Timestamp 是一个 64 位整数 value 是一个未解释的字节数组byte[] 表中的不同行可以拥有不同数量的成员。即支持“动态模式”模型