我读了亚马逊s3distcp的文档-上面说,
在复制操作期间,s3distcp在集群上以hdfs的形式暂存输出的临时副本。hdfs中必须有足够的可用空间来暂存数据,否则复制操作将失败。另外,如果s3distcp失败,它不会清除临时hdfs目录,因此您必须手动清除临时文件。例如,如果将500 gb的数据从hdfs复制到s3,s3distcp会将整个500 gb复制到hdfs中的临时目录中,然后将数据从临时目录上载到amazon s3”。
这不是无关紧要的,尤其是当您有一个大型hdfs集群时。有人知道常规hadoop distcp是否也有这样的行为:将要复制的文件暂存到临时文件夹中?
1条答案
按热度按时间6rvt4ljy1#
distcp不使用临时文件夹,而是使用map reduce作为集群间/集群内的文件副本。同样的情况也适用于hdfs到s3。如果由于某种原因失败,afaik distcp不会使整个文件拷贝失败。
如果总共需要复制500 gb的文件,并且如果已经复制了200 gb的文件并且distcp失败,那么s3中就有200 gb的数据。当您再次尝试重新运行distcp作业时,它将跳过已经存在的文件。
有关命令的更多信息,请参阅此处的distcp指南