标签:hdfs iceberg ods db hive json metadata
做机器迁移,导致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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。