sudo systemctl stop hbase-master
sudo systemctl stop hbase-regionserver
/var/lib/hbase),防止恢复失败或覆盖现有有效数据:sudo tar -czvf hbase_current_data_backup.tar.gz /var/lib/hbase
若此前使用HBase自带backup工具创建过全量/增量备份,可通过以下步骤恢复:
my_backup为实际备份名称):hbase backup list
hbase backup restore命令恢复指定备份(需替换my_backup、/path/to/backup/root及my-cluster-id为实际值):hbase backup restore 'my_backup' --backupRootDir=/path/to/backup/root --clusterId=my-cluster-id
sudo systemctl start hbase-master
sudo systemctl start hbase-regionserver
hbase shell
> list # 查看表是否存在
> scan 'your_table_name' # 扫描目标表数据
若数据删除前创建过HBase快照(表级快照),可通过快照快速恢复:
sudo systemctl stop hbase-master
sudo systemctl stop hbase-regionserver
/hbase/.archive目录)复制回HBase数据目录:hadoop fs -get hdfs://namenode:9000/hbase/.archive/your_snapshot /var/lib/hbase/data/default
your_snapshot为实际快照名称,your_table_name为目标表名):hbase shell
> restore_snapshot 'your_snapshot'
sudo systemctl start hbase-master
sudo systemctl start hbase-regionserver
hbase shell
> scan 'your_table_name'
若数据因未持久化或误操作丢失,可通过回放WAL(Write-Ahead Log)日志恢复:
/hbase/.logs目录(需替换为实际路径),确认所需日志文件的完整性。hadoop fs -get hdfs://namenode:9000/hbase/.logs/WALs/your_regionserver/WAL_file /var/lib/hbase/logs
sudo systemctl start hbase-master
sudo systemctl start hbase-regionserver
若上述方法均无效,可尝试手动恢复数据文件(需具备HBase数据文件结构知识):
/var/lib/hbase/data/default/your_table)复制回原目录。hbase)对数据目录有读写权限:sudo chown -R hbase:hbase /var/lib/hbase
backup工具或快照功能。hbase shell status命令检查集群健康状况,避免遗漏问题。