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
命令檢查集群健康狀況,避免遺漏問題。