在 CentOS 上恢复 HBase 数据的实用步骤
一、恢复前准备
cp -r /hbase/data /hbase/data_backup_$(date +%F)。hbase.rootdir 为准)。二、常见场景与对应恢复方法
/hbase/bin/hbase-daemon.sh start master;3) 观察日志:tail -f /hbase/logs/hbase-*-master-*.log。/hbase/bin/hbase-daemon.sh start regionserver;3) 检查负载与日志:tail -f /hbase/logs/hbase-*-regionserver-*.log。/hbase/bin/hbck -repair(修复前建议先 hbck -details 评估问题范围)。hbase.rootdir、Zookeeper 地址等);2) 重启集群:stop-hbase.sh && start-hbase.sh;3) 复核日志定位残留错误。三、基于快照的恢复(推荐,快速且安全)
snapshot 'tbl','snap1')。create 'tbl', {NAME => 'cf'};restore_snapshot 'snap1'。hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snap1 -copy-to hdfs://backup-nn:8020/hbase_backup/snap1;hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snap1 -copy-from hdfs://backup-nn:8020/hbase_backup/snap1 -copy-to hdfs://target-nn:8020/hbase;restore_snapshot 'snap1'。四、基于导出导入与 WAL 的恢复(无快照或需时间点恢复)
hbase org.apache.hadoop.hbase.mapreduce.Export table_name hdfs://nn:8020/backup/table_name;hbase org.apache.hadoop.hbase.mapreduce.Import table_name hdfs://nn:8020/backup/table_name。hbase org.apache.hadoop.hbase.wal.WALManager -files -logs;五、恢复后验证与注意事项
echo "status 'simple'" | hbase shell;scan 'your_table', {LIMIT => 10};/hbase/bin/hbck(无 ERROR/INCONSISTENT 为佳)。