[ https://issues.apache.org/jira/browse/HIVE-15310?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vihang Karajgaonkar reassigned HIVE-15310: ------------------------------------------ Assignee: 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: Vihang Karajgaonkar > > 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 (v6.3.4#6332)