使用Distcp进行Hadoop数据迁移
使用Distcp进行Hadoop数据迁移
在进行数据迁移前确认数据量大小和数据文件数,源端和目的端都需要确认:
hdfs dfs -count /
59790 7008 22875716090 /
- 59790:表示目录 / 下的文件总数,即包括目录和文件在内的所有对象的数量。
- 7008:表示目录 / 下的子目录(即非文件)的数量。
- 22875716090:表示目录 / 下的所有对象(包括文件和目录)的总大小,以字节为单位。
hdfs dfs -du -s -h /
21.3 G 63.9 G /
- 21.3 G:表示目录 / 下的所有对象的总大小,以 GB 为单位。这是一个人类可读的格式,以便更好地理解数据量的大小。
- 63.9 G:表示目录 / 下的所有对象占用磁盘空间的总大小,以 GB 为单位。这是实际磁盘上的物理存储空间。
迁移命令:
hadoop distcp -update -skipcrccheck -delete -bandwidth 50 -m 100 hdfs://hive-hadoop-namenode:9000/ hdfs://new-hive-hadoop-namenode:9000/
- -bandwidth 以MB/秒为单位指定每个映射的带宽。每个映射将被限制为仅使用指定的带宽
- -skipcrccheck 是否跳过源路径和目标路径之间的CRC检查
- -delete 删除dst中现有但不在src中的文件
- -m 同时复制的最大数量