Hbase存储要点:
1、三维有序
rowkey排序、列簇类有序、时间戳倒序
2、行分割
在行的方向上进行分割
将一定的行放在同一个region,随着行的增多,会进行拆分,并将region分布到各个HRegionServer中
3、分布式存储单位
HRegion是分布式存储和负载均衡最小单位,不同的HRegion可以分配到不同的HRegionServer
4、存储单位
HRegion由一个或者多个Store组成,每个Store保存一个columns family,每个store又由一个memStore和0至多个StoreFile组成,
Storefile以HFile格式保存在HDFS上
5、行级锁
在单行上加锁,具备强一致性
6、支持mapreduce直接操作
7、Hbase访问
旧版本(新版本直接删除掉了root表,直接有zookeeper找到meta信息)
1).Meta记录用户表region信息,.Meta可以有多个region
--Rowkey:Region的name,其中包含了表名等信息
--Column Family:info, 包含了如下三列:regioninfo,server和serverstartcode。 其中 regioninfo包含了 NAME, STARTKEY, ENDKEY 等信息
2)-ROOT表记录.Meta表的region信息,-Root只有一个region,zookeeper记录-ROOT表的location信息
当用户表非常大的时候,.META.的region也会不断增加,HBase引入了第二张特殊表-ROOT-,用来记录.META.的Region信息。-ROOT-表的结构与.META.的结构一样
8、读取
扫描顺序(Region):BlockCache(读缓存)、MemStore(写缓存)、StoreFile(HFile)