HBase笔记
1.应用场景和特点
hbase => 当数据量非常大的时候才会体现出hbase的优势
特点:
海量数据存储 => 单表可有上百亿行。上百万的列。也就是对列没有限制。 => 关系型数据库正常单表不超过五百万行,不超过三十列。
面向列 => 动态添加数据的时候生成列。单独对列进行各种操作。
多版本
稀疏行 => 为空的列不占用磁盘空间。 => 关系型数据库当列为空的时候值会为null。也会占用磁盘空间
扩展性 => 底层依赖于HDFS => 数据内存不够的时候只需要动态添加机器就行。
高可靠性 =>
高性能 => 高写高读性能。
准实时查询 => 百毫秒实时查询上亿数据量
应用场景 :
交通,金融,电商,移动...
概念与定位
概念:
如何选择合适hbase的版本
官网版本 => https://archive.apache.org/dist/hbase/ => 较新
cdh版本 => http://archive.cloudera.com/cdh5/ => 较稳定,兼容性优。
定位:认识hbase在hadoop2.x生态系统中的定位
架构体系与设计模型
架构体系:
宏观图分析:
hbase内部有两个主要的进程服务 => Master/RegionServer
hbase依赖与两个外部服务 => HDFS(hbase的数据是基于HDFS存储的,也就是说写入hbase的数据最终落入到HDFS分布式文件系统中)/ZooKeeper(分布式的框架)
regionserver管理集群上面的数据。会及时报告信息(状态和管理内容)给master服务。也会报告zookeeper。
设计模型:
关系型数据库:只需要设计数据库的列。并且要确定列的值,才能对数据进行操作。
hbase:面向列(列蔟)的数据库,不需要先制定列。只需要设定列蔟。
例如下图
在hbase表设计的时候,只需要确定column family即可。column family 的子列不需要制定,子列的生成是数据的动态增加而自动生成的。
表结构数据模型说明:
列蔟的概念:
hbase数据库与关系型数据的对比: