HBase在Debian上的數據備份策略
hbase org.apache.hadoop.hbase.mapreduce.Export
命令將HBase表數據導出到HDFS,再通過hbase org.apache.hadoop.hbase.mapreduce.Import
命令導入到目標集群或HDFS。適用于較小規模數據備份,支持指定時間范圍實現增量備份。hbase shell
或API創建表的快照(如snapshot 'tableName', 'snapshotName'
),本質是在HDFS上記錄表的元數據和HFile文件列表,幾乎不占用額外空間且創建速度快,對集群性能影響極小。適用于需要快速保存時間點視圖的場景。sudo apt-get install hbase-backup
安裝,使用hbase backup create
命令創建集群級備份(如hbase backup create 'my_backup' --backupRootDir=/path/to/backup/root --clusterId=my-cluster-id
)。支持全量/增量備份,需配合HBase集群配置使用。hadoop distcp hdfs://source:8020/hbase hdfs://target:8020/hbase_backup
),適用于大規模數據遷移或跨集群備份。/var/lib/hbase/data
):使用sudo tar -czvf hbase_data_backup.tar.gz /var/lib/hbase/data
命令壓縮歸檔,保留表結構和數據文件。/var/log/hbase
):使用sudo tar -czvf hbase_logs_backup.tar.gz /var/log/hbase
命令歸檔,用于故障排查。cron
定時任務自動化執行備份腳本(如每日凌晨執行增量備份腳本),減少人為操作失誤。例如,編輯/etc/crontab
添加0 2 * * * root /path/to/incremental_backup.sh
。systemctl status cron
查看cron服務狀態,或使用Prometheus+Grafana監控備份腳本的輸出日志),記錄備份時間、大小、耗時等指標,及時發現異常。hbase shell> restore_snapshot 'snapshotName'
),或從Export文件導入數據(hbase org.apache.hadoop.hbase.mapreduce.Import hdfs://backup:8020/hbase_export tableName
),確保在數據丟失或系統故障時能快速恢復。sudo systemctl stop hbase-master && sudo systemctl stop hbase-regionserver
),避免數據寫入導致不一致;快照和Export操作無需停止服務,但需確保集群狀態正常。/path/to/backup/root
)、HDFS目錄(如/hbase
)有讀寫權限,避免因權限不足導致備份失敗。