在 Linux 环境下使用 Hadoop 进行数据备份,常见方式有以下几种,按使用频率和业务场景整理给你:
hdfs dfs -cp /user/data /user/data_backup
适合临时备份或版本保留。
hdfs dfs -cp hdfs://clusterA:8020/user/data hdfs://clusterB:8020/user/data_backup
distcp(推荐,生产环境)分布式拷贝,适合大数据量、跨集群
hadoop distcp hdfs://namenode1:8020/source hdfs://namenode2:8020/target
常用参数:
hadoop distcp -update -delete hdfs://src hdfs://dst
-update:只同步变化文件-delete:删除目标中源没有的文件✅ 优点:并行、稳定、支持增量
hdfs dfsadmin -allowSnapshot /user/data
hdfs dfs -createSnapshot /user/data snapshot_20260121
hdfs dfs -ls /user/data/.snapshot
hdfs dfs -cp /user/data/.snapshot/snapshot_20260121 /user/data_restore
✅ 适合误删恢复、时间点备份
hdfs dfs -get /user/data /backup/local_data
hadoop distcp hdfs:///user/data s3a://bucket/backup/
# backup_hdfs.sh
#!/bin/bash
hadoop distcp -update hdfs:///user/data hdfs://backup-cluster/user/data
0 2 * * * /home/hadoop/backup_hdfs.sh >> /var/log/hdfs_backup.log
如果你能告诉我:
我可以帮你设计一套具体备份方案。