You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Zac Zhou (JIRA)" <ji...@apache.org> on 2017/12/11 03:33:00 UTC

[jira] [Updated] (HIVE-18261) Load data failed as moving acls from source data to the target dir

     [ https://issues.apache.org/jira/browse/HIVE-18261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Zac Zhou updated HIVE-18261:
----------------------------
    Attachment: HIVE-18261.patch

> Load data failed as moving acls from source data to the target dir
> ------------------------------------------------------------------
>
>                 Key: HIVE-18261
>                 URL: https://issues.apache.org/jira/browse/HIVE-18261
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Zac Zhou
>            Assignee: Zac Zhou
>         Attachments: HIVE-18261.patch
>
>
> Running load data command, I got the following error:
> [ERROR]2017-12-07 15:14:38,986, [Class]1512630876274, executeHqlSync method failed
> java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. org.apache.hadoop.security.AccessControlException: Permission denied. user=*** is not the owner of inode=data
> at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkOwner(FSPermissionChecker.java:250)
> at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:227)
> at org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer$RangerAccessControlEnforcer.checkPermission(RangerHdfsAuthorizer.java:306)
> at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:190)
> at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1722)
> at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1706)
> at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkOwner(FSDirectory.java:1675)
> at org.apache.hadoop.hdfs.server.namenode.FSDirAclOp.setAcl(FSDirAclOp.java:145)
> at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.setAcl(FSNamesystem.java:7951)
> at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.setAcl(NameNodeRpcServer.java:1835)
> at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.setAcl(ClientNamenodeProtocolServerSideTranslatorPB.java:1330)
> at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
> at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:982)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)
> at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Unknown Source)
> at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)
> at org.apache.hive.jdbc.HiveStatement.waitForOperationToComplete(HiveStatement.java:349)
> at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:251)
> at com.netease.bdms.executor.executor.HQLResultManager.fetchResultsByJdbc(HQLResultManager.java:231)
> at com.netease.bdms.executor.executor.HQLResultManager.saveFirstResultSet(HQLResultManager.java:341)
> at com.netease.bdms.executor.executor.HQLJdbcJobRunnable.executeHqlSync(HQLJdbcJobRunnable.java:265)
> at com.netease.bdms.executor.executor.HQLJdbcJobRunnable.runInternal(HQLJdbcJobRunnable.java:170)
> at com.netease.bdms.executor.executor.HQLJdbcJobRunnable.run(HQLJdbcJobRunnable.java:67)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:473)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
> at java.lang.Thread.run(Thread.java:748)
> The job was failed, but the data had been moved into the target dir.
> The root cause is Namenode check the path owner when seting acl. it will failed if the user is not the owner.
> I think the job should not fail if failing to set acl, just like [HIVE-13716|https://issues.apache.org/jira/browse/HIVE-13716] 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)