1. HDFS内置备份机制
hdfs dfsadmin -createSnapshot命令创建文件系统或目录的只读时间点副本,备份过程即时且对常规HDFS操作影响小,适合快速恢复至特定时刻状态(如误删除、数据篡改)。恢复时使用hdfs dfs -cp /snapshot/path /target/path命令即可还原数据。hdfs-site.xml中配置dfs.namenode.secondary.http-address(Secondary NameNode地址)、dfs.namenode.checkpoint.dir(检查点目录)等参数。2. 分布式复制工具(DistCp)
Hadoop内置的分布式复制工具,支持在HDFS集群间或集群内高效复制大量数据,可实现全量备份(首次复制所有数据)和增量备份(通过-update参数仅复制变化的文件)。基础命令示例:hadoop distcp hdfs://source-namenode:9000/source/path hdfs://target-namenode:9000/target/path,适用于定期大规模数据备份。
3. 第三方备份工具
rsync -avz hdfs://namenode:port/path /local/backup/dir命令,实现HDFS与本地/远程目录的增量同步(仅传输变化的文件),适合本地备份或小规模数据迁移。hdfs dfs -put /hdfs/path s3a://minio-bucket/backup/path命令将HDFS数据迁移至MinIO,支持跨地域存储、版本控制和生命周期管理,适合云端备份。4. 元数据与配置备份
hdfs dfsadmin -safemode enter进入安全模式(阻止数据修改),再执行hdfs dfsadmin -saveNamespace命令保存文件系统元数据(FsImage和Edits)到NameNode的dfs.namenode.name.dir目录(如/usr/local/hadoop/data/namenode),防止元数据丢失。tar命令打包Hadoop配置目录(如/etc/hadoop/conf),示例脚本:tar -czvf /backup/hdfs-config-$(date +%Y%m%d).tar.gz /etc/hadoop/conf,定期备份可确保集群配置恢复的一致性。5. 备份策略选择
hdfs fsck /backup/path -files -blocks -locations命令检查备份数据的完整性(如块是否损坏、副本是否充足),并定期测试恢复流程(如从快照或DistCp备份中还原数据),确保备份有效性。