Debian Hadoop數據備份策略
全量備份是備份所有選定數據的最基礎方法,適用于首次備份或定期歸檔。常見命令如下:
hadoop fs -cp
命令復制HDFS數據目錄(如/data
)到備份路徑(如/backup
),需添加-r
選項遞歸復制子目錄:hadoop fs -cp -r hdfs://localhost:9000/data hdfs://localhost:9000/backup
sudo -u hdfs hdfs dfsadmin -safemode enter
;sudo -u hdfs hdfs dfsadmin -saveNamespace
;hdfs dfsadmin -createSnapshot /path/to/data snapshot_name
。增量備份僅復制自上次備份(全量或增量)以來變更的數據,節省存儲空間和備份時間。常用方法:
hdfs dfs -cp
與hdfs dfs -rsync
命令:先執行全量備份,后續每日用rsync
同步新增/修改內容:hadoop fs -rsync /data hdfs://localhost:9000/backup
DistCp
工具的--update
選項,僅復制源與目標不一致的文件:hadoop distcp --update hdfs://source-namenode:8020/source_dir hdfs://target-namenode:8020/backup_dir
差異備份復制自上次全量備份以來變更的數據,恢復時只需全量備份+最近一次差異備份,適合數據變化大且恢復時間要求高的場景。實現方式:
hdfs dfs -rsync
或DistCp
過濾上次全量備份后的變更數據(需結合時間戳或版本控制)。NameNode的元數據(fsimage
、edits
文件)是HDFS的核心,需定期備份以防止元數據丟失。操作步驟:
sudo -u hdfs hdfs dfsadmin -safemode enter
;sudo -u hdfs hdfs dfsadmin -saveNamespace
;/dfs/nn
)到備份存儲(如本地/nnbak
或遠程服務器):sudo -u hdfs cp -r /dfs/nn/* /nnbak/
若Hadoop集群使用MariaDB存儲Hive、HBase等組件的元數據,需通過mysqldump
備份數據庫:
username
、password
、database_name
):mysqldump -u username -p password database_name > /backup/mariadb_backup.sql
duplicity --full-if-older-than 1M /path/to/hadoop/data file:///backup/hadoop_backup
通過cron
定時任務自動執行備份腳本,確保備份及時性。示例步驟:
backup_hadoop.sh
),包含全量/增量備份命令及日志記錄;chmod +x /path/to/backup_hadoop.sh
;cron
任務(如每天凌晨2點執行):crontab -e
輸入:0 2 * * * /path/to/backup_hadoop.sh >> /var/log/hadoop_backup.log 2>&1
cron
定時執行,避免人工遺漏。