You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Steve Loughran (JIRA)" <ji...@apache.org> on 2016/07/21 18:44:20 UTC

[jira] [Commented] (HIVE-14271) FileSinkOperator should not rename files to final paths when S3 is the default destination

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

Steve Loughran commented on HIVE-14271:
---------------------------------------

Given S3 rename is emulated by a recursive copy() + delete(), it's not clear that a copy() operation will provide any performance benefits, and still have the failure conditions of a non-atomic operation.

> FileSinkOperator should not rename files to final paths when S3 is the default destination
> ------------------------------------------------------------------------------------------
>
>                 Key: HIVE-14271
>                 URL: https://issues.apache.org/jira/browse/HIVE-14271
>             Project: Hive
>          Issue Type: Sub-task
>            Reporter: Sergio Peña
>            Assignee: Abdullah Yousufi
>
> FileSinkOperator does a rename of {{outPaths -> finalPaths}} when it finished writing all rows to a temporary path. The problem is that S3 does not support renaming.
> Two options can be considered:
> a. Use a copy operation instead. After FileSinkOperator writes all rows to outPaths, then the commit method will do a copy() call instead of move().
> b. Write row by row directly to the S3 path (see HIVE-1620). This may add better performance calls, but we should take care of the cleanup part in case of writing errors.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)