You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Janaki Lahorani (JIRA)" <ji...@apache.org> on 2018/02/23 04:22:00 UTC

[jira] [Assigned] (HIVE-15310) CTAS fails when target location contains multiple directories levels that don't exist

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

Janaki Lahorani reassigned HIVE-15310:
--------------------------------------

    Assignee: Janaki Lahorani  (was: Vihang Karajgaonkar)

> CTAS fails when target location contains multiple directories levels that don't exist
> -------------------------------------------------------------------------------------
>
>                 Key: HIVE-15310
>                 URL: https://issues.apache.org/jira/browse/HIVE-15310
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive
>            Reporter: Sahil Takiar
>            Assignee: Janaki Lahorani
>            Priority: Major
>
> The second query below fails, if the {{/tmp/}} directory is empty:
> {code}
> create table test1 (id int) location '/tmp/test1/one/two/';
> create table test2 location '/tmp/test2/one/two' as select * from test1;
> {code}
> The stacktrace is:
> {code}
> Error: org.apache.hive.service.cli.HiveSQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Unable to move source file:/var/folders/jb/350gyf853s91hk5xk06jyw2w0000gp/T/stakiar/f6c5c246-3209-4d76-aaf4-1ac91436f59a/hive_2016-11-29_14-02-33_047_219358498634208469-1/-mr-10002 to destination /tmp/test2/one/two
> 	at org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:393)
> 	at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:250)
> 	at org.apache.hive.service.cli.operation.SQLOperation.access$800(SQLOperation.java:91)
> 	at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:340)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:422)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
> 	at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:353)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to move source file:/var/folders/jb/350gyf853s91hk5xk06jyw2w0000gp/T/stakiar/f6c5c246-3209-4d76-aaf4-1ac91436f59a/hive_2016-11-29_14-02-33_047_219358498634208469-1/-mr-10002 to destination /tmp/test2/one/two
> 	at org.apache.hadoop.hive.ql.exec.MoveTask.moveFile(MoveTask.java:104)
> 	at org.apache.hadoop.hive.ql.exec.MoveTask.execute(MoveTask.java:263)
> 	at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:199)
> 	at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100)
> 	at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:2166)
> 	at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1822)
> 	at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1510)
> 	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1221)
> 	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1216)
> 	at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:248)
> 	... 11 more
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to move source file:/var/folders/jb/350gyf853s91hk5xk06jyw2w0000gp/T/stakiar/f6c5c246-3209-4d76-aaf4-1ac91436f59a/hive_2016-11-29_14-02-33_047_219358498634208469-1/-mr-10002 to destination /tmp/test2/one/two
> 	at org.apache.hadoop.hive.ql.metadata.Hive.moveFile(Hive.java:3119)
> 	at org.apache.hadoop.hive.ql.exec.MoveTask.moveFileInDfs(MoveTask.java:120)
> 	at org.apache.hadoop.hive.ql.exec.MoveTask.moveFile(MoveTask.java:97)
> 	... 20 more
> Caused by: java.io.FileNotFoundException: File /tmp/test2/one does not exist
> 	at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:609)
> 	at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:822)
> 	at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:599)
> 	at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:421)
> 	at org.apache.hadoop.hive.io.HdfsUtils$HadoopFileStatus.<init>(HdfsUtils.java:178)
> 	at org.apache.hadoop.hive.ql.metadata.Hive.moveFile(Hive.java:3029)
> 	... 22 more (state=08S01,code=1)
> {code}
> The second query works if the target location is simply {{/tmp/test2/}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)