HBase基本结构(三) 在HDFS中的文件布局

85 阅读4分钟
[root@hdmn1 test_spark_sqls]# hadoop fs -ls /hbase
Found 10 items
drwx--x--x   - hbase hadoop              0 2020-04-29 13:41 /hbase/.hbck     
# snapshot文件存储目录。用户执行snapshot后,相关snapshot元数据文件存储在该目录
drwx--x--x   - hbase hadoop              0 2020-04-29 13:48 /hbase/.tmp       
# 临时文件目录,用于HBase表的创建和删除操作。
# 表创建的时候首先会在tmp目录下执行,执行成功后再将tmp目录下的表信息移动到实际表目录下。
# 表删除操作会将表目录移动到tmp目录下,一定时间后再将tmp目录下的文件真正删除。
drwx------   - hbase supergroup          0 2020-05-06 09:39 /hbase/MasterProcWALs    
# 存储Master Procedure过程中的WAL文件。
# Master Procedure功能主要用于可恢复的分布式DDL操作,它使用WAL记录DLL执行的中间状态,在异常发生后可通过WAL回放明确定位到中间状态点,继续执行后续操作以保证整个DDL操作的完整性。
drwx--x--x   - hbase supergroup          0 2020-04-30 01:33 /hbase/WALs   
# 存储集群中的呢RegionServer的HLog日志文件。
drwx--x--x   - hbase hadoop              0 2020-05-06 09:08 /hbase/archive  
# 文档归档目录。使用场景:
# 1. 所有对HFile文件的删除操作都会将待删除文件临时放在该目录。
# 2. 进行Snapshot或升级时使用到的归档目录。
# 3. Compaction删除HFile时,会把旧的HFile移动到这里。
drwx--x--x   - hbase hadoop              0 2019-01-18 13:47 /hbase/corrupt  
# 存储损坏的HLog文件或者HFile文件。

drwx--x--x   - hbase supergroup          0 2019-01-29 17:46 /hbase/data    
# 存储集群中所有Region的HFile数据。  
-rw-------   3 hbase supergroup         42 2019-01-17 18:10 /hbase/hbase.id  
# 集群启动初始化的时候,创建的集群唯一id。
-rw-------   3 hbase supergroup          7 2019-01-17 18:10 /hbase/hbase.version  
# HBase软件版本文件,代码静态版本。
drwx--x--x   - hbase supergroup          0 2020-05-06 09:42 /hbase/oldWALs  
# WAL归档目录,一旦一个WAL文件中记录的所有KV数据确认已经从MemStore持久化到Hfile,那么该WAL文件就会被移到该目录。
# HFile文件完整路径:/hbase/data/命名空间(default)/表名(usertable)/Region名称(MD5)/列簇名(family)/HFile文件名(MD5)
[root@hdmn1 test_spark_sqls]# hadoop fs -ls /hbase/data/
Found 3 items
drwx--x--x   - hbase supergroup          0 2020-05-06 00:10 /hbase/data/bumy
drwx--x--x   - hbase supergroup          0 2020-04-24 15:03 /hbase/data/default
drwx--x--x   - hbase supergroup          0 2019-01-22 13:14 /hbase/data/hbase
[root@hdmn1 test_spark_sqls]# hadoop fs -ls /hbase/data/default/mytable/
Found 3 items
drwx--x--x   - hbase hadoop          0 2019-08-13 17:33 /hbase/data/default/mytable/.tabledesc  
# 表描述文件,记录对应表的基本schema信息。
drwx--x--x   - hbase hadoop          0 2019-08-13 17:33 /hbase/data/default/mytable/.tmp            
# 表临时目录,存储Flush和Compaction过程中的中间结果。
# 如Flush,MemStore中的KV数据落盘形成Hfile,首先生成在.tmp目录下,一旦完成再从.tmp目录移到对应的实际文件目录。
drwx--x--x   - hbase hadoop          0 2019-12-08 01:56 /hbase/data/default/mytable/c606b6c02a3f6b51192988432afe38bc
[root@hdmn1 test_spark_sqls]# hadoop fs -ls /hbase/data/default/mytable/c606b6c02a3f6b51192988432afe38bc
Found 3 items
-rw-------   3 hbase hadoop         42 2019-08-13 17:33 /hbase/data/default/mytable/c606b6c02a3f6b51192988432afe38bc/.regioninfo  
 #Region描述文件

drwx--x--x   - hbase hadoop          0 2019-08-14 20:21 /hbase/data/default/mytable/c606b6c02a3f6b51192988432afe38bc/colfam1
drwx--x--x   - hbase hadoop          0 2020-04-28 15:56 /hbase/data/default/mytable/c606b6c02a3f6b51192988432afe38bc/recovered.edits  
# 存储故障恢复时该Region需要回放的WAL日志数据。
# RegionServer宕机后,该节点上还没有来得及flush到磁盘的数据需要通过WAL回放恢复。
# WAL文件首先需要按照Region进行切分,每个Region拥有对应的WAL数据片段,回放时只需要回放自己的WAL数据片段即可。
[root@hdmn1 test_spark_sqls]# hadoop fs -ls /hbase/data/default/mytable/c606b6c02a3f6b51192988432afe38bc/colfam1
Found 1 items
-rw-------   3 hbase hadoop       4975 2019-08-14 20:21 /hbase/data/default/mytable/c606b6c02a3f6b51192988432afe38bc/colfam1/e40c31de97ff47aeb27d84a4ca59f7c8  
# HFile文件