HDFS数据迁移可按以下步骤操作,工具及方法可根据场景选择:
一、迁移前准备
- 评估数据量:使用
hdfs dfs -du -h /
命令统计各目录数据量,按业务分目录规划迁移。
- 制定迁移计划:选择低峰时段,按业务、分目录分批迁移,避免影响线上业务。
- 网络与工具准备:确保新老集群网络互通,选择工具(如Hadoop DistCp、Spark-distcp等)。
二、执行迁移
- 全量迁移:
使用Hadoop DistCp命令,格式为:
hadoop distcp [options] hdfs://source/path hdfs://destination/path
- 同版本集群:直接指定源和目标路径。
- 不同版本集群:通过
hftp://
协议连接源集群。
- 增量迁移:
先全量拷贝,再通过-update
参数同步变化数据,或结合HDFS快照实现。
三、迁移后验证
- 数据一致性校验:
- 使用
distcp -update
参数更新目标文件,确保与源数据一致。
- 通过
hdfs fsck
检查数据完整性。
- 权限与文件类型处理:
- 用
-p
参数保留文件权限。
- 确认文件类型(如目录、普通文件)是否正确迁移。
四、注意事项
- 带宽管理:监控网络使用,避免迁移占用过多带宽,可配置工具限速。
- 异常处理:记录迁移失败的文件,手动处理删除、新增等异常情况。
- 工具选择:
- 大规模集群:优先用DistCp或Spark-distcp。
- 跨集群/云存储:可借助对象存储(如COS)中转。
参考来源: