HBase构建在 HDFS 之上,Hbase内部管理的文件所有存储在HDFS 中缓存
行键,Table的主键,Table中的记录按照Row Key排序。类型为Byte array服务器
列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中能够由任意多个Column组成架构
列 格式为:familyName:columnName并发
版本号。默认值是系统时间戳。每一个 rowkey 惟一。类型为long负载均衡
具体的值,类型为Byte array分布式
每一个 column family 存储在 HDFS 上的一个单独文件中高并发
Key 和 Version number 在每一个 column family 中均有一份大数据
HBase 为每一个值维护了多级索引,即: key, column family, column name, timestampspa
Table 中的全部行都按照 row key 的字典序排列;server
Table 在行的方向上分割为多个Region;
Region 按大小分割的,每一个表开始只有一个 region ,随着数据增多, region 不断增大,当增大到一个阀值的时候,region就会等分会两个新的region,以后会有愈来愈多的region
Region 是 HBase 中分布式存储和负载均衡的最小单元。不一样Region分布到不一样RegionServer上
Region 虽然是分布式存储的最小单元,但并非存储的最小单元。
包含访问 HBase 的接口,并维护 cache 来加快对 HBase 的访问
Zookeeper避免了HMaster的单点问题 HBase中能够启动多个HMaster,经过Zookeeper的Master Election机制保证总有一个Master运行
第一次读取:
步骤1:读取ZooKeeper中ROOT表的位置。
步骤2:读取ROOT表中.META表的位置。
步骤3:读取.META表中用户表的位置。
步骤4:读取数据。
若是已经读取过一次,则root表和.META都会缓存到本地
则直接去用户表的位置读取数据
-ROOT- 表包含 .META. 表所在的 region 列表,该表只会有一个 Region ;
Zookeeper 中记录了 -ROOT- 表的 location 。
.META. 表包含全部的用户空间 region 列表,以及
RegionServer 的服务器地址。