介绍一下Hbase,为什么使用Hbase,Hbase的运行机制
QuickStart
Big Table:分布式数据存储系统
1 | Hbase:Big Table 的Java实现(非关系型数据库) |
主要特点:
大:一个表可以包含上亿行,上百万列
面向列:面向列的存储和权限控制,列的独立检索
稀疏:对于为空的列,不占用存储空间
针对每个CELL的值保存多个版本由时间戳来标识
每个表由行和列组成
每行由‘行键’来唯一标识,默认存在
每个列属于一个特定的列族(Column Family)
表中由行和列确定的存储单元称为一个单元(Cell)
每个单元保存了同一份数据的多个版本,由时间戳(TimeStamp)来标识
副本的控制:
1 | 副本的保存策略可以在建表时动态指定,默认只保存一个副本 |
(1) 按时间控制:可以设定保存的副本的时间长度,超过该时间的部分将被删除
(2)按最大副本数量来控制,比如说每个CULL就保存七个副本,当存入第八个副本时,第一个存入的副本将会被删除
Column(Hbase提供的一个列族的概念)
Family,当创建一个表格时,仅需要指定所有的列族,并不需要指定具体的列
Hbase的数据存储是以行为单位的,若干行的数据被划分一个region,该region内按列族划分为Store,一个Store内部按列(Qualifier限定符)划分为多个StoreFile,StoreFile物理上对应HFile文件,HBase存储时,是以HFile为单位进行分布存储的,因此同一列的数据会被优先保存在同一个节点上
这样的设计有利于数据分析。