[ 
https://issues.apache.org/jira/browse/HADOOP-15281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16762957#comment-16762957
 ] 

Eric Payne commented on HADOOP-15281:
-------------------------------------

[~noslowerdna] and [~ste...@apache.org], this commit breaks the branch-3.1 
build when building with java 1.8.
{code:title="RetriableFileCopyCommand.java"}
    LOG.info("Copying {} to {}", source.getPath(), target);
{code}
Multiple lines have this error:
{panel:title="Build Failure"}
[ERROR] 
hadoop-tools/hadoop-distcp/src/main/java/org/apache/hadoop/tools/mapred/RetriableFileCopyCommand.java:[121,8]
 no suitable method found for 
info(java.lang.String,org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path)
[ERROR]     method org.apache.commons.logging.Log.info(java.lang.Object) is not 
applicable
[ERROR]       (actual and formal argument lists differ in length)
[ERROR]     method 
org.apache.commons.logging.Log.info(java.lang.Object,java.lang.Throwable) is 
not applicable
[ERROR]       (actual and formal argument lists differ in length)
{panel}

> 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.2.1, 3.1.3
>
>         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

Reply via email to