HBase數據恢復在CentOS的系統化方案
hbase shell status
,若返回“2 live servers”則表示集群正常。/var/log/hbase/
或/hbase/logs/
,文件名為hbase-<username>-master-<hostname>.log
、hbase-<username>-regionserver-<hostname>.log
),重點關注ERROR
或WARN
級別的日志,定位故障原因(如HMaster宕機、RegionServer崩潰、數據文件損壞、配置錯誤等)。/var/lib/hbase
或/hbase/data
),命令為sudo cp -r /var/lib/hbase /var/lib/hbase_backup
(CentOS系統目錄可能不同)。echo stat | nc <zookeeper_host> 2181
),確保多數節點正常;sudo systemctl restart hbase-master
(若使用systemd)或/usr/lib/hbase/bin/start-hbase.sh
(若使用腳本)。sudo systemctl restart hbase-regionserver
或/usr/lib/hbase/bin/start-hbase.sh
;hbase shell status 'simple'
,確認RegionServer已加入集群。hbck
工具檢測數據一致性:/hbase/bin/hbck
,若存在不一致會列出具體Region或表;/hbase/bin/hbck -repair
,工具會自動修復可修復的問題(如缺失的Region、不一致的元數據)。hbase-site.xml
中關鍵配置(如hbase.rootdir
、hbase.zookeeper.quorum
)修改錯誤。/etc/hbase/conf/hbase-site.xml
),修正錯誤配置(如將hbase.rootdir
改為正確的HDFS路徑hdfs://namenode:9000/hbase
);stop-hbase.sh
(停止集群)、start-hbase.sh
(啟動集群)。HBase提供了內置的備份與恢復命令,適用于有定期備份的場景:
hbase backup create
命令創建全量或增量備份,例如hbase backup create 'my_backup'
(my_backup
為備份名稱)。hbase backup list
命令查看所有備份記錄,確認備份是否存在。hbase backup restore
命令恢復指定備份,例如hbase backup restore 'my_backup'
,恢復后HBase會自動重載數據。若自動恢復失敗,可采用手動替換數據目錄的方式:
sudo systemctl stop hbase-master
、sudo systemctl stop hbase-regionserver
。sudo rm -rf /var/lib/hbase
),將備份的數據目錄復制到原路徑(sudo mv /path/to/backup/hbase /var/lib/hbase
)。hbase
)對數據目錄有讀寫權限,命令為sudo chown -R hbase:hbase /var/lib/hbase
。sudo systemctl start hbase-master
、sudo systemctl start hbase-regionserver
,等待集群啟動完成。create_snapshot 'table_name', 'snapshot_name'
(如create_snapshot 'user_table', 'user_snapshot_202508'
)。hadoop fs -get hdfs://namenode:9000/hbase/data/default/.archive/snapshot_name /var/lib/hbase/data/default
);restore_snapshot 'snapshot_name'
恢復表數據。hbase org.apache.hadoop.hbase.wal.WALManager -files -logs
,確認所需日志文件存在;hadoop fs -get hdfs://namenode:9000/hbase/data/hbase/.logs/WALs/master_node/00000000000000000001.wal /var/lib/hbase/logs
);hbase shell status
命令確認集群狀態為“RUNNING”,所有RegionServer均已在線。hbase shell scan 'user_table' LIMIT 10
),確認數據是否恢復至預期狀態。hbase shell
命令(如hbase shell top
)或第三方監控工具(如Prometheus+Grafana),監控集群的Region負載、內存使用、磁盤IO等指標,及時調整配置(如增大Region大小、增加RegionServer節點)。hbase backup
命令或第三方工具(如Hadoop DistCp)備份數據至異地存儲。