以下是Ubuntu上備份Hadoop數據的常用方法:
使用Hadoop自帶工具
DistCp命令:在集群內或集群間高效復制數據,支持增量備份。
hadoop distcp hdfs://源路徑 hdfs://目標路徑 [選項]
(例:hadoop distcp -update hdfs://namenode:9000/data hdfs://backup:9000/backup_data
)
HDFS快照:創建只讀時間點副本,適合定期備份。
# 啟用快照(需先在hdfs-site.xml中配置)
hdfs dfsadmin -allowSnapshot /data
# 創建快照
hdfs dfs -createSnapshot /data snapshot_name
# 恢復快照
hdfs dfs -revertSnapshot /data snapshot_name
備份元數據
fsimage
和edits
文件(需進入安全模式):sudo -u hdfs hdfs dfsadmin -safemode enter
sudo -u hdfs hdfs dfsadmin -saveNamespace
sudo cp -r /dfs/nn/* /backup/nnbak/
第三方工具
定時任務
cron
設置定期執行備份命令,例如:crontab -e
# 添加任務(每日0點執行DistCp備份)
0 0 * * * /usr/bin/hadoop distcp hdfs://source hdfs://backup >> /var/log/hadoop-backup.log 2>&1
注意事項: