Hive中数据报错:Failed with exception java.io.IOException: rename for src path: hdfs://xx returned false.

hive 专栏收录该内容
32 篇文章 6 订阅

1.现象

执行hive中shell脚本的时候报如下错误

Logging initialized using configuration in file:/etc/hive/1.1.0.0-0131/0/hive-log4j.properties
Query ID = root_20200423155947_dfd65c44-2baa-44e2-853d-3fd8e58a7701
Total jobs = 1
Launching Job 1 out of 1
Status: Running (Executing on YARN cluster with App id application_1586702868362_7817)

Loading data to table phmdwdb.dwd_phm_relay_swtctlcir_base_infor partition (compute_day=2020-03-18)
Failed with exception java.io.IOException: rename for src path: hdfs://iotcluster/apps/hive/warehouse/phmdwdb.db/dwd_phm_relay_swtctlcir_base_infor/compute_day=2020-03-18/.hive-staging_hive_2020-04-23_15-59-47_419_2317556495302371390-1/-ext-10000/000000_0 to dest path:hdfs://iotcluster/apps/hive/warehouse/phmdwdb.db/dwd_phm_relay_swtctlcir_base_infor/compute_day=2020-03-18/000000_0 returned false
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask
log4j:WARN No such property [maxFileSize] in org.apache.log4j.DailyRollingFileAppender.

2.原因分析

    建表时建立的是外部表,删除表后又重新建立,导致数据并未被删除依然存在于HDFS上,只是将元数据删除掉而已。Hive把临时文件移动到正式目录的时候,会先对hdfs上的文件做一个判断。如果指定位置上不存在该文件夹,就在指定位置上创建此文件夹;如果该文件夹存在则直接将文件移过去,既把临时文件夹里的000000_0文件移动到正式目录下,可此时正式目录下已经有了一个叫000000_0的文件,所以就会报如上的错误。

   一般此错误的原因都是建立外部表后又删除重建造成的。

3.解决方法

 根据报错的提示位置,在HDFS上直接删除数据。

hadoop fs -ls hdfs://iotcluster/apps/hive/warehouse/phmdwdb.db/dwd_phm_relay_swtctlcir_base_infor/

删除后重新执行shell脚本,问题解决。

  • 1
    点赞
  • 2
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值