以下是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
注意事项: