1.视频学习
https://www.bilibili.com/video/BV1r441127Pw?p=6
2.HBase基础
HBase是一个基于HDFS开发的面向列(面向列族)的分布式数据库,它主要用于超大规模的数据集存储,从而可以实现对超大规模数据的实时随机访问。
HBase自底向上的进行构建,解决了原有数据库横向扩展难的问题,使用Hbase可以简单的通过增加节点来达到横向扩展,扩大存储规模,也就是在廉价普通的硬件构成的集群上管理超大规模的稀疏表。
在整个Hadoop生态中,HBase的位置如图所示。
需要注意的是:HBase不是关系型数据库,它是NoSQL数据库的一个典型代表,并不支持SQL查询,它所使用的查询语言是基于键值的一种特殊语法,有些地方也称为:HQL。
3.HBase的特点
- 大:一个表可以有上亿行,上百万列。
- 面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。
- 稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
- 无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。
- 数据多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。
- 数据类型单一:HBase中的数据都是字符串,没有类型。