HBase在Ubuntu上的数据恢复流程
sudo stop-hbase.sh
hdfs dfsadmin -report
Snapshot是HBase提供的轻量级备份机制,适合快速恢复单个表的数据。
hbase(main):001:0> SNAPSHOT 'table_name', 'snapshot_name'
hbase(main):001:0> LOAD 'table_name', '/hbase/.hbase-snapshot/snapshot_name'
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snapshot_name -copy-to /hbase/data/default
sudo start-hbase.sh
hbase(main):001:0> scan 'table_name'
若使用HBase的backup命令创建了全量/增量备份,可通过以下步骤恢复:
/hbase/backup目录下,可通过以下命令查看:hdfs dfs -ls /hbase/backup
hbase(main):001:0> restore 'backup_id', '/hbase/backup/backup_id'
sudo start-hbase.sh
hbase(main):001:0> count 'target_table'
若表被误删除,可通过HBase的hbck工具修复元数据并恢复:
hbck命令修复表的描述符文件(需确保HDFS中有表的残留数据):hbase hbck -repairTable table_name
hbase(main):001:0> create 'table_name', 'cf1', 'cf2'
import命令将数据导入:hbase org.apache.hadoop.hbase.mapreduce.Import 'table_name', '/hbase/data/default/table_name'
若HFile(HBase数据文件)因HDFS故障丢失,可从备份中恢复:
/hbase/backup或自定义目录下。hdfs dfs -mv /hbase/backup/table_name/region1/cf1/hfile1 /hbase/data/default/table_name/region1/cf1/
sudo start-hbase.sh
hbase backup命令)或定期创建Snapshot,避免数据丢失风险。hdfs fsck检查HDFS文件),避免恢复失败。hbck、import)与HBase版本一致,避免因版本不兼容导致问题。