1.HBase在Zookeeper创建了以下子节点

  • meta-region-server: 存储HBase集群hbase:meta元数据表所在的RegionServer访问地址
  • master/backup-masters:集群中的Master备份节点
  • table:集群中所有表信息
  • region-in-transition:迁移Region需要对Region执行unassign和assign操作来切换Region状态,RegionServer会在region-in-transition更新Region状态
  • table-lock:使用ZK相关机制实现分布式锁
  • online-snapshot:实现在线snapshot操作,表级别的snapshot同样是分布式操作,需要对表的每个Region都执行snapshot,就需要借助ZK来完成
  • replication:实现HBase复制功能
  • splitWAL/recovering-regions:实现HBase分布式故障恢复,为了加速集群故障恢复,让集群中的所有RegionServer都参与日志切分
  • rs:集群中所有允许的RegionServer

2.HBase在HDFS中创建的目录

  • .hbase-snapshot:snapshot文件存储目录,用户执行snapshot后相关的元数据存储在该目录
  • .tmp:临时文件目录,主要用于HBase表的创建和删除操作,创建表会先在tmp目录执行,创建成功再将tmp目录下的表信息移动到实际表目录
  • MasterProcWALs:存储Master Procedure过程中的WAL文件,Master Procedure主要用可恢复的分布式DDL操作
  • Master Procedure使用WAL记录DDL执行的中间状态,在异常发生后可通过WAL回放定位到中间状态点,继续执行后续操作保证整个DDL操作的完整性
  • WALs:存储集群中所有RegionServer的HLog日志文件
  • archive:归档目录
  • Compaction删除HFile的时候,会把进的HFile移动到该目录
  • 进行snapshot或者升级时使用的归档目录
  • 所有对HFile文件的删除操作都会将待删除文件临时放在该目录
  • corrupt:存储损坏的HLog文件或者HFile文件
  • data:存储集群中所有的Region的HFile数据
  • .tabledesc:表描述文件,记录对应表的schema信息
  • .tmp:表临时目录,存储Flush和Compaction过程中的中间结果,在此目录完成操作移动再到实际目录
  • .regioninfo:Region描述文件
  • recovered.edits:存储故障恢复时该Region需要回放的WAL日志数据
  • hbase.id:集群启动初始化时创建集群唯一id
  • hbase.version:HBase版本
  • oldWALs:WAL归档目录,一个WAL中记录的所有KV数据确认从MemStore持久化到HFile,那么WAL文件移动至该目录