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)