Hbase为nosql,适用于Hbase的场景如下:
1.数据量大,千万级以上
2.对数据访问实时性要求没有RDBMS高,如离线运算为主
Hbase的特点如下:
1 高可靠性
2 高效性
3 面向列
4 可伸缩
5 可在廉价PC Server搭建大规模结构化存储集群
Hbase在Hadoop Ecosystem中的位置如下图:
访问HBase的接口:
Native Java API 最常规和高效
HBase Shell 最简单接口 HBase管理使用
Thrift Gateway 利用Thrift序列化支持多种语言
Rest Gateway 解除语言限制 Rest风格Http API访问
Pig Pig Latin六十编程语言处理数据
Hive sql方式
HBase 数据模型:
row key Timestamp Family:name Family:age
www.someabcd.com date1 大杂烩 1
date2 IT大杂烩 1
date3 IT技术门户 1
几个重要概念:
rowkey:
行key,为索引列,按此值字典顺序排序,因此在存储的时候要为访问做准备
Famliy:
列簇,一个table在水平方向有一个或者多个列簇,列簇可由任意多个Column组成,列簇支持动态扩展,无须预定义数量及类型,二进制存储,用户需自行进行类型转换
Timestamp:
每次对数据操作对应的时间戳,也即数据的version number
两张特殊的表:
.META. 记录用户表的Region信息,同时,.META.也可以有多个region
-ROOT- 记录.META.表的Region信息,但是,-ROOT-只有一个region,在zookeeper上被感知
Table和Region关系:
1. Table随着记录增多不断变大,会自动分裂成多份Splits,成为Regions
2. 一个region由[startkey,endkey)表示
3. 不同region会被Master分配给相应的RegionServer进行管理
备注:其对应关系在.META.上记录