hive insert overwrite directory 報錯

來源:互聯網
上載者:User

hive insert overwrite directory 報錯:

2017-06-07T16:56:11,766 ERROR [main]: exec.Task (:()) - Failed with exception Unable to move source hdfs://testhadoop/tmp/t1/.hive-staging_hive_2017-06-07_16-56-05_916_7465107102137731594-1/-ext-10000 to destination /tmp/t1org.apache.hadoop.hive.ql.metadata.HiveException: Unable to move source hdfs://testhadoop/tmp/t1/.hive-staging_hive_2017-06-07_16-56-05_916_7465107102137731594-1/-ext-10000 to destination /tmp/t1        at org.apache.hadoop.hive.ql.exec.MoveTask.moveFile(MoveTask.java:103)        at org.apache.hadoop.hive.ql.exec.MoveTask.execute(MoveTask.java:254)        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:197)        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100)        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1858)        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1562)        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1313)        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1084)        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1072)        at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:232)        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:183)        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:399)        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:776)        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:714)        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:641)        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)        at java.lang.reflect.Method.invoke(Method.java:497)        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.io.IOException: rename for src path: hdfs://testhadoop/tmp/t1/.hive-staging_hive_2017-06-07_16-56-05_916_7465107102137731594-1/-ext-10000/000000_0 to dest path:/tmp/t1/000000_0 returned false        at org.apache.hadoop.hive.ql.metadata.Hive.moveFile(Hive.java:2942)        at org.apache.hadoop.hive.ql.exec.MoveTask.moveFileInDfs(MoveTask.java:118)        at org.apache.hadoop.hive.ql.exec.MoveTask.moveFile(MoveTask.java:96)        ... 20 moreCaused by: java.io.IOException: rename for src path: hdfs://testhadoop/tmp/t1/.hive-staging_hive_2017-06-07_16-56-05_916_7465107102137731594-1/-ext-10000/000000_0 to dest path:/tmp/t1/000000_0 returned false        at org.apache.hadoop.hive.ql.metadata.Hive$3.call(Hive.java:2922)        at org.apache.hadoop.hive.ql.metadata.Hive$3.call(Hive.java:2911)        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)

原因:
hive2.1.0bug,升級到hive2.1.1
報錯原因是insert overwrite directory ,如果原來的directory已經有資料,mv會報錯。詳見HIVE-13997,地址https://issues.apache.org/jira/browse/HIVE-13997

bug修複思路: 在mv結果資料到目標目錄的之前,先刪除目標目錄的資料。這個策略與hive1.2.1版本不同。

打patch,https://issues.apache.org/jira/browse/HIVE-13997 下載HIVE-13997.2.patch,然後將path放到hive-2.1.0-src,執行patch -p1 < HIVE-13997.2.patch ; 然後重新編譯ql模組,得到hive-exec-2.1.0.jar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.