Hadoop在Linux环境下的备份方法
DistCp是Hadoop原生提供的分布式数据复制工具,基于MapReduce框架,适合大规模HDFS数据的高效备份(如集群间同步或跨版本迁移)。
操作步骤:
hadoop distcp hdfs://source-namenode:8020/source/path hdfs://backup-namenode:8020/backup/path(替换为实际的NameNode地址和路径);/var/log/hadoop-yarn/)查看详细信息。HDFS Snapshot是Hadoop的核心功能之一,可快速创建文件系统或目录的只读时间点副本,不影响生产环境运行,适合关键数据的快速保护。
操作步骤:
hdfs dfsadmin -allowSnapshot /path/to/target/directory(如/user/hive/warehouse);hdfs dfs -createSnapshot /path/to/target/directory snapshot_name(如snapshot_20251031);hdfs dfs -cp /path/to/target/directory/.snapshot/snapshot_name/* /path/to/restore/(将快照内容复制回原路径)。HDFS提供简单的命令行工具,适合小规模数据或临时备份需求。
hdfs dfs -cp /source/path /destination/path(如hdfs dfs -cp /user/hadoop/input /backup/input);hdfs dfs -get /hdfs/path /local/path(将HDFS数据下载到本地,如hdfs dfs -get /user/hadoop/output/output.txt ~/local_output/);hdfs dfs -put /local/path /hdfs/path(将本地数据上传到HDFS,如hdfs dfs -put ~/local_logs/*.log /user/hadoop/logs/)。对于大规模集群或需要集中管理的场景,可使用第三方工具实现自动化、可扩展的备份。
ambari-backup backup --target-dir=/backup/location(执行备份);ambari-backup restore --target-dir=/backup/location(恢复备份)。通过Linux的cron服务设置定时任务,实现备份的自动化执行,避免人工遗漏。
操作步骤:
crontab -e;0 2 * * * /usr/bin/hadoop distcp hdfs://namenode:8020/user/hive/default_db hdfs://backup-namenode:8020/backup/hive_$(date +\%F)(%需转义为\%);>> /var/log/hadoop-backup.log 2>&1),便于后续检查。MSCK REPAIR TABLE),避免脏数据;gpg工具);限制备份目录的访问权限(如chmod 700 /backup);