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.上记录