问题描述

问题描述/异常栈

在有数bi查询或者自助分析使用impala查询
java.sql.SqlException:Disk I/O ERROR 具体主机名 ;filed to open hdfs......;

flie not exist:具体路径......

FAQ-使用impala查询报文件不存在 - 图1 FAQ-使用impala查询报文件不存在 - 图2

解决方案

如果是因为使用spark执行insert overwrite导致的,暂时在执行sql前加:set spark.sql.hive.convertInsertingPartitionedTable =false

1.在数据地图中找到报错的具体表
2.刷新该报错表的hive信息
3.然后刷新impala的元数据
或者
在自助分析使用hive执行:ANALYZE TABLE intern_new_dev.test_delete_partition PARTITION (year='test_03') COMPUTE STATISTICS
然后用impala执行:invalidate metadata table

问题原因

元数据未更新导致的异常
1.先排查改分区文件是否存在,如果不存在找到产出任务是否有异常
2.该分区或者表的数据生成了,但是文件名对不上,查看下分区或表数据的更新时间与文件的更新时间是否一致,如果不一致,则更新分区,刷新元数据

作者:常惠渊