[
https://issues.apache.org/jira/browse/HIVE-13662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15315768#comment-15315768
]
Pengcheng Xiong edited comment on HIVE-13662 at 6/5/16 6:27 AM:
----------------------------------------------------------------
Hi [~ashutoshc], after some investigation, I still have some questions on this.
Please correct me if I am wrong. (1) FileSinkOperator will call
"HiveFileFormatUtils.getHiveRecordWriter() which calls
HiveOutputFormat::getHiveRecordWriter() which will eventually call
FileSystem.create() which accepts permissions as an argument." This is true,
but it is for
SOMEPATH/warehouse/t2/.hive-staging_hive_2016-06-04_12-08-56_977_8632631213427778083-1/_task_tmp.-ext-10000/p1=5/_tmp.000000_0,
for example. This file includes the taskID, i.e., _tmp.000000_0. (2) However,
in Hive.java, when we move file, we do not care about the permission of
_tmp.000000_0, we care about the permission of /p1=5. If /p1=5 is there, we
need to use its existing permission (i.e., partition permission), otherwise we
need to inherit from its parent (i.e., table permission). Thus, if we would
like to set file permission and ACL in file sink operator (the goal of this
jira), we need to create the directory /p1=5 with a correct permission, rather
than to call FileSystem.create() with permissions.
was (Author: pxiong):
Hi [~ashutoshc], after some investigation, I still have some questions on this.
Please correct me if I am wrong. (1) FileSinkOperator will call
"HiveFileFormatUtils.getHiveRecordWriter() which calls
HiveOutputFormat::getHiveRecordWriter() which will eventually call
FileSystem.create() which accepts permissions as an argument." This is true,
but it is for
SOMEPATH/warehouse/t2/.hive-staging_hive_2016-06-04_12-08-56_977_8632631213427778083-1/_task_tmp.-ext-10000/p1=5/_tmp.000000_0,
for example. This file includes the taskID, i.e., _tmp.000000_0. (2) However,
in Hive.java, when we move file, we do not care about the permission of
_tmp.000000_0, we care about the permission of /p1=5. If /p1=5 is there, we
need to use its existing permission, otherwise we need to inherit from its
parents. Thus, if we would like to set file permission and ACL in file sink
operator (the goal of this jira), we need to create the directory /p1=5 with a
correct permission, rather than to call FileSystem.create() with permissions.
> Set file permission and ACL in file sink operator
> -------------------------------------------------
>
> Key: HIVE-13662
> URL: https://issues.apache.org/jira/browse/HIVE-13662
> Project: Hive
> Issue Type: Bug
> Reporter: Rui Li
> Assignee: Pengcheng Xiong
> Attachments: HIVE-13662.01.patch
>
>
> As suggested
> [here|https://issues.apache.org/jira/browse/HIVE-13572?focusedCommentId=15254438&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15254438].
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)