在 Linux 环境下,Hadoop 数据备份常见做法取决于你是备份 HDFS 上的数据,还是Hadoop 集群的元数据/配置。下面按常见场景系统说明。
distcp(官方推荐,跨集群/同集群)distcp(Distributed Copy)是 Hadoop 自带的分布式拷贝工具,适合大规模数据备份。
hadoop distcp hdfs://namenode:8020/source/path hdfs://namenode:8020/backup/path
hadoop distcp hdfs://src-cluster:8020/data hdfs://dst-cluster:8020/backup/data
✅ 优点:
-update)✅ 常用参数:
-update # 增量同步
-overwrite # 覆盖目标
-p # 保留权限、时间等
-m 10 # 指定 map 数量
适合短时间、快速备份与恢复
hdfs dfsadmin -allowSnapshot /data
hdfs dfs -createSnapshot /data backup_2026_01_21
hdfs dfs -ls /data/.snapshot
hdfs dfs -cp /data/.snapshot/backup_2026_01_21/file /data/
✅ 优点:
❌ 缺点:
适合小数据量
hdfs dfs -get /data /backup/local/
或结合 rsync:
rsync -avz /backup/local/ user@backup-server:/backup/hadoop/
❌ 不适合 TB/PB 级别数据
如 S3、OSS、MinIO
hadoop distcp hdfs://namenode:8020/data s3a://bucket/backup/
✅ 适合:
路径一般在:
$HADOOP_HOME/data/dfs/name
cp -r dfs/name /backup/namenode-meta
dfs.namenode.name.dir$HADOOP_HOME/etc/hadoop/
建议备份:
core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlhbase backup create full hdfs://backup/hbase
或:
hbase snapshot
| 类型 | 推荐方式 |
|---|---|
| HDFS 大数据 | distcp |
| 短期恢复 | HDFS 快照 |
| 异地容灾 | distcp → 远程 HDFS / S3 |
| 元数据 | 多目录 + 定期冷备 |
| 配置 | Git / 定期打包 |
# 1. HDFS 数据
hadoop distcp -update hdfs://namenode:8020/db hdfs://backup-nn:8020/backup/db
# 2. NameNode 元数据
cp -r dfs/name /backup/meta/name-$(date +%F)
# 3. 配置
tar czf hadoop-conf-$(date +%F).tar.gz $HADOOP_HOME/etc/hadoop/
❌ 只备份数据目录,不备份 NameNode 元数据
❌ 快照当长期备份
❌ distcp 使用单线程 cp
如果你愿意,可以告诉我:
我可以给你定制一套备份方案。