在 CentOS 环境下,对 HDFS(Hadoop Distributed File System) 进行备份,常见方式有以下几种,按使用频率和可靠性从高到低说明:
hdfs dfs -distcp 备份(最推荐)hdfs dfs -distcp hdfs://namenode:8020/source hdfs://namenode:8020/backup/source
hdfs dfs -distcp hdfs://clusterA:8020/data hdfs://clusterB:8020/backup/data
优点
-update -append)常用参数
-update # 仅同步变化文件
-append # 支持文件追加
-p # 保留权限、属主、时间戳
-m 10 # 并发 map 数
hdfs dfs -copyToLocal / -put(本地备份)hdfs dfs -copyToLocal /user/hadoop/data /backup/hdfs_data
hdfs dfs -put /backup/hdfs_data /user/hadoop/data
注意
hdfs dfsadmin -allowSnapshot /data
hdfs dfs -createSnapshot /data snapshot_20260121
hdfs dfs -cp /data/.snapshot/snapshot_20260121/file /data/file
特点
dfs.namenode.name.dircp -r /data/hadoop/dfs/name /backup/namenode_name
tar czf nn_backup_$(date +%F).tar.gz /data/hadoop/dfs/name
建议
hdfs ec -enablePolicy -policy RS-6-3-1024k
hdfs ec -setPolicy -path /data -policy RS-6-3-1024k
✅ 日常备份
✅ 误操作防护
✅ 灾难恢复
如果你能提供:
我可以帮你写一套 CentOS 定时备份脚本(crontab + distcp)。