在 Ubuntu 环境下进行 HDFS 数据迁移的实用指南
一、迁移方式与适用场景
二、标准流程与关键命令
hdfs dfs -du -h /path;按业务/目录拆分迁移批次与时窗,避免高峰期影响业务。hadoop distcp hdfs://src-nn:9000/path hdfs://dst-nn:9000/pathhftp://src-nn:50070/path hdfs://dst-nn:9000/path(旧集群 HTTP 访问端口通常为 50070)。-p(权限/属主/时间戳)-update(目标已存在则覆盖差异)-append(追加到目标文件)-bandwidth <MB>-m <maps>hdfs dfs -count -q、抽样 hdfs dfs -checksum;失败文件记录并重跑。三、常见场景与命令示例
hadoop distcp -m 50 -p -bandwidth 200 hdfs://10.0.0.1:9000/data hdfs://10.0.0.2:9000/datahadoop distcp -m 50 hftp://10.0.0.1:50070/data hdfs://10.0.0.2:9000/datahadoop distcp -update -p hdfs://src-nn:9000/data hdfs://dst-nn:9000/datahadoop distcp hdfs://src-nn:9000/data cosn://bucket/datahadoop distcp cosn://bucket/data hdfs://dst-nn:9000/datahadoop jar hbase-<version>.jar export <table> /hbase_export/<table>hadoop jar hbase-<version>.jar import <table> /hbase_export/<table>sqoop import -connect jdbc:mysql://localhost:3306/db -username u -password p -table t -m 1sqoop export --connect jdbc:mysql://localhost:3306/db --username u --password p --table t --export-dir /hdfs/path -m 1sudo apt-get install hadoop-hdfs-fusehadoop-fuse-dfs dfs://<nameservice_or_nn>:<rpc_port> /mnt/hdfsrsync -av /mnt/hdfs/ /local/backup/ 或编写脚本分批拷贝四、安全与性能要点
ipc.client.fallback-to-simple-auth-allowed 以兼容跨域访问。-bandwidth 限制吞吐,选择业务低峰时段执行;分批次迁移并保留回滚计划。五、排错清单
-p 保留权限并在两端统一 umask/ACL。-m 提升稳定性。-update 并结合业务时间窗口。