首页 > 其他分享> > org.apache.iceberg.exceptions.NotFoundException: Failed to open input stream for file:hdfs://ns1/use
org.apache.iceberg.exceptions.NotFoundException: Failed to open input stream for file:hdfs://ns1/use
作者:互联网
做机器迁移,导致flink程序写iceberg失败,原因是hive的元数据存储库mysql停了一段时间。
然后flink出现以下异常,
org.apache.iceberg.exceptions.NotFoundException: Failed to open input stream for file: hdfs://ns1/user/hive/warehouse/iceberg_ods.db/ods_xxx/metadata/17120-4d647bb0-6caa-4ea1-a8e4-8ed8fc0f3922.metadata.json
网上找了半天,终于发现了一个解决方法,可以读出表中的数据来,但是那个metadata关联的文件数据会有部分丢失。
解决方法:
(1) 先查询到该表对应的元数据的目录中其他的元数据信息。
hdfs dfs -ls /user/hive/warehouse/iceberg_ods.db/ods_xxx/metadata/17120-*.metadata.json
(2)下载相近的一条元数据文件
hdfs dfs -get /user/hive/warehouse/iceberg_ods.db/ods_xxx/metadata/17543-e503a667-eaef-4bfd-91ec-7c8079206ec7.metadata.json
(3)将该文件重命名为刚才报错的文件名
mv 17543-e503a667-eaef-4bfd-91ec-7c8079206ec7.metadata.json 17120-4d647bb0-6caa-4ea1-a8e4-8ed8fc0f3922.metadata.json
(4)然后将该文件上传到刚才的meta目录。
hdfs dfs -put 17120-4d647bb0-6caa-4ea1-a8e4-8ed8fc0f3922.metadata.json /user/hive/warehouse/iceberg_ods.db/ods_xxx/metadata/
然后再查询表信息就不会出错了,其实简单来说就是找个文件替换。
至于缺失的按个meta文件对应的数据文件,只能自己去想其他办法后补了。
标签:hdfs,iceberg,ods,db,hive,json,metadata 来源: https://www.cnblogs.com/30go/p/16696193.html