1.Table中的所有的行都是按照row key 字典序排列
2.Table在行的方向上分割为多个region
3.Region按大小分割的,每个表开始只有一个region,随着数据量的增多,region不断的增大,当增大到一个阈值的时候,region就会等分两个新的region,之后会有越来越多的region;
4.Region是HBase中分布式存储和负载均衡的最小单元。不同的region分布到不同的RegionServer上;
5.Region虽然是分布式存储的最小单元,但并不是存储的最小单元
Region由一个或者多个store组成,每个store对应一个CF
每个store又由一个memstore和0到多个storeFile组成
memstore存储在内存中,storefile存储在HDFS上
6.hbase命名空间
default -> 用户自定义的表
/stu /region /hstore=cf /storeFiles
hbase -> 系统自动的元数据表(namespace,meta)
/namespace /meta
查看所有的命名空间:list_namespace
查看此命名空间下的表:list_namespace_tables
7.读hbae数据流程
client -> zookeeper(meta-region-server) ->hbase:meta -> region<=>regionserver
用户发起读的请求之后,首先会去读zookeeper上meta-region-server表信息,通过这个表可以找到HBase:meta表
存放在哪个RegionServer上,然后再去对应的RegionServer上获取HBase:meta表的信息,此meta表信息记录了
HBase所有表的region信息。我们可以通过namespace、表名、rowkey定位要读取的是哪个RegionServer上的region