[ https://issues.apache.org/jira/browse/HADOOP-15281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16766158#comment-16766158 ]
Andrew Olson commented on HADOOP-15281: --------------------------------------- Updated fix versions. If there is a compelling reason to patch this into 3.1 I can make the necessary logging changes. > Distcp to add no-rename copy option > ----------------------------------- > > Key: HADOOP-15281 > URL: https://issues.apache.org/jira/browse/HADOOP-15281 > Project: Hadoop Common > Issue Type: Improvement > Components: tools/distcp > Affects Versions: 3.0.0 > Reporter: Steve Loughran > Assignee: Andrew Olson > Priority: Major > Fix For: 3.3.0, 3.2.1 > > Attachments: HADOOP-15281-001.patch, HADOOP-15281-002.patch, > HADOOP-15281-003.patch, HADOOP-15281-004.patch > > > Currently Distcp uploads a file by two strategies > # append parts > # copy to temp then rename > option 2 executes the following sequence in {{promoteTmpToTarget}} > {code} > if ((fs.exists(target) && !fs.delete(target, false)) > || (!fs.exists(target.getParent()) && !fs.mkdirs(target.getParent())) > || !fs.rename(tmpTarget, target)) { > throw new IOException("Failed to promote tmp-file:" + tmpTarget > + " to: " + target); > } > {code} > For any object store, that's a lot of HTTP requests; for S3A you are looking > at 12+ requests and an O(data) copy call. > This is not a good upload strategy for any store which manifests its output > atomically at the end of the write(). > Proposed: add a switch to write directly to the dest path, which can be > supplied as either a conf option (distcp.direct.write) or a CLI option > (-direct). -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org