在 Linux 环境下迁移 HDFS 数据,常见场景和做法如下,按使用频率和场景给你整理一份实用指南。
hdfs dfs -cp(最常用)hdfs dfs -cp /source/path /target/path
✅ 适合:
❌ 不适合:
hdfs dfs -mvhdfs dfs -mv /source/path /target/path
✅ 只改元数据,不复制数据(快)
❌ 只能同集群、同 NameService
distcp(官方推荐 ✅)hadoop distcp \
hdfs://namenode1:8020/source \
hdfs://namenode2:8020/target
hadoop distcp \
-p \
-m 20 \
-bandwidth 100 \
hdfs://src:8020/path \
hdfs://dst:8020/path
参数说明:
-p:保留权限、副本数、修改时间-m:并发 map 数-bandwidth:限速(MB/s)✅ 适合:
如果集群配置了 Federation,可写:
hadoop distcp viewfs://srcCluster/path hdfs://dstCluster/path
puthdfs dfs -put /local/path /hdfs/path
hdfs dfs -copyFromLocal -f /local/file /hdfs/path
hdfs dfs -get /hdfs/path /local/path
hadoop distcp -p rbugpca src dst
hadoop distcp /source/.snapshot/snap1 /target
distcp-m 和 -bandwidthkinit -kt keytab principal
hadoop distcp src dst
如果你能告诉我:
我可以直接给你可复制的命令模板。