1

我阅读了亚马逊 S3DistCp的文档- 它说,

“在复制操作期间,S3DistCp 在集群上暂存一份输出到 HDFS 中的临时副本。HDFS 中必须有足够的空闲空间来暂存数据,否则复制操作会失败。另外,如果 S3DistCp 失败,它不会清理HDFS 临时目录,因此您必须手动清除临时文件。例如,如果您将 500 GB 数据从 HDFS 复制到 S3,S3DistCp 会将整个 500 GB 复制到 HDFS 的临时目录中,然后将数据从临时目录”。

这并非无关紧要,尤其是在您拥有大型 HDFS 集群的情况下。有谁知道常规 Hadoop DistCp 是否具有将文件暂存到临时文件夹中的相同行为?

4

1 回答 1

1

Distcp 不使用临时文件夹,而 distcp 使用 Map Reduce 进行集群间/集群内的文件复制。HDFS 到 S3 也同样如此。如果由于某种原因失败,AFAIK distcp 不会使整个文件副本失败。

如果总共需要复制 500 GB 的文件,并且如果已经复制了 200 GB 的文件并且 distcp 失败,那么您在 S3 中有 200 GB 的数据。当您再次尝试重新运行 distcp 作业时,它将跳过已经存在的文件。

有关命令的更多信息,请查看 distcp 指南here

于 2015-02-09T05:44:01.713 回答