如何有效地复制同一文件系统中的文件

时间:2011-12-14 13:39:41

标签: hadoop cloudera

我写了一份工作,他的一个职责是在HDFS中复制很多非常大的文件。 我发现使用FileUtil.copy()效率不高。

有更有效的方法吗?我听说DistCp.java比FileUtil.copy()更好吗?有没有DistCp.java Cloudera实现?

1 个答案:

答案 0 :(得分:2)

  

是否存在DistCp.java Cloudera实现?

不确定Cloudera实现的含义。它是标准Hadoop安装的一部分,因此它也应该是CDH的一部分。您也可以直接使用DistCp命令。 DistCp命令在内部调用DistCp.java类来复制文件。

  

我听说DistCp.java比FileUtil.copy()更好吗?

FileUtil.copy()方法是按顺序复制文件,而DistCp会生成MR作业以复制更有效的文件,因为复制是并行发生的。有关详细信息,请查看DistCp文档。