这次主要分析一下Hbase的数据表
建表语句分析
我们分析下条语句,在hbase shell中,直接按create命令不带参数,hbase会提示建表的语法。
create ‘demo:user’, {NAME => ‘f1’, VERSIONS => 5, COMPRESSION => ‘SNAPPY’,COMPRESSION_COMPACT=>‘snappy’,‘REPLICATION_SCOPE’=>1}
- 表名字叫做’demo:user’
- NAME 列族名字是 f1,记住建表一定要指定列族名
- VERSION 是Hbase的表保存的数据版本数,默认保存3个版本
- REPLICATION_SCOPE 值可以为0或者1,0代表不复制,1代表启用复制
- COMPRESSION_COMPACT,COMPRESSION 是表的压缩类型
Hbase提供了三种常用的压缩类型,如下,并且官方给出的压缩率如下:
Hbase数据存储目录解析
我们在搭建Hbase的时候需要在hbase-site.xml中指定其存储目录,Hbase在指定的目录中构造数据数据
- .tmp 当对表进行创建和删除的时候会把表移动到.tmp目录下,然后再进行表操作,他是一个临时的数据交换目录
- WALS 理解为存储Hbase的操作日志
- archive 管理表的归档,这个由一个定时任务定时处理,管理和维护hbase的数据
- corrupt 一般是损坏的数据
- data 存储数据的核心目录
- hbase.id 标识hbase进程
- hbase.version 表名的
- oldWALs 日志已经被持久化之后,日志就被移动到这个目录下等待删除
- data/default 目录存储的是当前Hbase内包含的的表信息
- data/hbase 存储元数据和命名空间
Hbase的元信息表
hbase的元数据表为’hbase:meta’,存储在ZooKeeper上面。它也是一张普通的hbase表。它的结构如下:
region是存储数据的最基本单元
Key:
- table,key,time 三个部分的组合。因为Hbase根据rowkey排序,所有可用很快的找打对应的表
Values: 指向的是region server指向的region
- info:regioninfo 对于region的基本信息存储,平时基本上用不到
- info:server region服务器的地址和端口,这样就可以找到服务器
- info:serverstartcode 数据校验的时候才用得到的
里面的值也是会进行变化的。RegionServer挂掉,它也会及时的更新,Hbase表相当于Hbase的第一级索引,是Hbase最重要的系统表。