HBase数据恢复在Debian上的策略
sudo systemctl stop hbase-master
sudo systemctl stop hbase-regionserver
。/var/lib/hbase
)和日志目录(默认路径为/var/log/hbase
),防止恢复失败导致二次数据丢失。执行以下命令:sudo tar -czvf hbase_data_backup.tar.gz /var/lib/hbase
sudo tar -czvf hbase_logs_backup.tar.gz /var/log/hbase
。tar -tzvf
查看备份内容),确保备份数据未损坏。若之前使用hbase org.apache.hadoop.hbase.mapreduce.Export
工具导出过数据,可通过以下步骤恢复:
hbase org.apache.hadoop.hbase.mapreduce.Import -Dmapreduce.job.queuename=default -Dimporttsv.separator=',' -Dimporttsv.columns="HBASE_ROW_KEY,cf1:col1,cf1:col2" /backup/path/your_export_file your_table_name
/backup/path/your_export_file
为导出的数据文件路径,your_table_name
为目标表名。hbase shell
→ scan 'your_table_name'
。若之前为表创建过快照(HBase的轻量级备份方式,不影响服务),可通过以下步骤恢复:
hbase shell
→ list_snapshots
。hbase shell
→ restore_snapshot 'your_snapshot_name'
。scan
命令检查表数据是否恢复。若之前手动备份了HBase数据目录(如/var/lib/hbase
),可通过以下步骤覆盖恢复:
sudo rm -rf /var/lib/hbase
。sudo tar -xzvf hbase_data_backup.tar.gz -C /
。hbase
)对数据目录有读写权限:sudo chown -R hbase:hbase /var/lib/hbase
。sudo systemctl start hbase-master
sudo systemctl start hbase-regionserver
。hbase shell
→ status
。hbase shell
→ scan 'your_table_name'
。