HBase运维基础——元数据逆向修复原理

本文面向HBase运维人员,从基础原理出发,重点讲解数据完整性及元数据逆向恢复机制,为后续系列文章奠定基础。

HBase目录结构(1.x版本)

HBase在HDFS上的根目录通常为/hbase,关键子目录包括:data(存储表数据和region信息)、WALs(写入日志)、oldWALs(已持久化的WAL)、archive(归档文件)、corrupt(损坏文件)、MasterProcWALs(Master过程日志)、hbase.id和hbase.version(集群标识与版本)等。其中,表数据目录下包含tableinfo(表属性)、regioninfo(region边界与状态)、HFile数据文件、recovered.edits(恢复日志)及临时目录(.tmp、.splits、.merges)。

主要文件与数据完整性

HFile:数据文件,存储实际记录,通过firstkey/lastkey用于元数据重建。

Reference文件:split/merge时引用父HFile,无效引用需手动清理。

regioninfo:记录region的startkey/endkey、状态等。

tableinfo:保存表名、列族属性及自定义配置。

hbase:meta表:记录所有region的分配信息,是集群路由核心。

元数据逆向生成原理

当元数据丢失或损坏时,可依据数据文件反向恢复:

tableinfo:优先从Master缓存恢复,否则仅能恢复表名和列族名,其他属性恢复默认值。

regioninfo:扫描HFile的firstkey/lastkey,按排序确定region边界,重新生成regioninfo。

meta表:根据regioninfo序列化填充meta行,并标记默认Server,待region上线时重新分配。

还需处理region空洞(补充缺失region)和重叠(合并重叠region)问题。

修复工具

hbck(在线):依次执行-fixTableOrphans、-fixHdfsOrphans、-fixHdfsOverlaps、-fixHdfsHoles、-fixMeta、-fixAssignment,逐步修复tableinfo、regioninfo、region范围、meta表并触发重新上线。

OfflineMetaRepair(离线):直接重建meta表,适合集群无法启动场景。

使用工具前务必先执行hdfs fsck检查数据完整性。若涉及第三方组件写入元数据,需额外备份自定义属性,修复后手动核对。后续文章将继续深入HBase运维实践。

相关推荐
long3168 小时前
MySQL 学习练习(配套 01 入门资料)
数据库·学习·mysql
Lonely 净土9 小时前
Rocky Linux 安装教程
linux·运维·服务器
数据库小学妹9 小时前
数据库等保三级和四级有什么区别?从访问控制到备份恢复的完整对比
数据库·安全·数据库安全·三级等保·等保合规·四级等保
光影少年9 小时前
RN的Fabric 渲染流程
运维·前端·javascript·react native·react.js·fabric
A 糖醋排骨10 小时前
grafana loki alloy轻量级日志采集
运维·grafana·loki
看浪的路人10 小时前
第3讲:手写第一个 MCP Server(Python SDK)
jvm·数据库·oracle
大眼、不聚光11 小时前
5.mysql--主从同步安装部署
数据库·mysql
Yan_chen66611 小时前
SQL-LABS_Less18-20实战攻略
数据库·sql·web安全·网络安全
oradh11 小时前
Oracle RAC OCR维护操作总结
数据库·oracle·ocr·rac ocr维护·ocr维护·vote disk
snow@li12 小时前
HikariCP:高性能数据库连接池全景深入梳理
java·数据库