我有两个 HDFS 设置,想要将一些表从 HDFS1 复制(而不是迁移或移动)到 HDFS2。如何将数据从一个HDFS复制到另一个HDFS?是否可以通过 Sqoop 或其他命令行?
DistCp(分布式复制)是用于在集群之间复制数据的工具。它使用 MapReduce 来实现其分发、错误处理和恢复以及报告。它将文件和目录列表扩展为映射任务的输入,每个任务都会复制源列表中指定的文件的一个分区。
Usage: $ hadoop distcp <src> <dst>
例子:$ hadoop distcp hdfs://nn1:8020/file1 hdfs://nn2:8020/file2
file1
from nn1
被复制到nn2
带文件名file2
Distcp 是目前最好的工具。 Sqoop 用于将数据从关系数据库复制到 HDFS,反之亦然,但不能在 HDFS 到 HDFS 之间复制数据。
更多信息:
- http://hadoop.apache.org/docs/r1.2.1/distcp.html http://hadoop.apache.org/docs/r1.2.1/distcp.html
- http://hadoop.apache.org/docs/r1.2.1/distcp2.html http://hadoop.apache.org/docs/r1.2.1/distcp2.html
有两个版本可用 - 运行时性能distcp2
更多的是相比于distcp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)