Hive ACID 表因两个读取器错误而失败

问题描述

我有基于 HIVE ACID 事务表的 ETL 作业。

TBLPROPERTIES (
'transactional' = 'true','bucketing_version' = '2','orc.compress' = 'zlib','hive.fetch.task.conversion' = 'none','transactional_properties' = 'default','hive.merge.tezfiles' = 'true'
)

在增量加载中,我们为新数据插入记录,为旧数据删除旧记录。 我观察到表经常损坏。

面临的错误

   Caused by: java.io.IOException: Two readers for {originalWriteId: 1,bucket: 536870912(1.0.0),row: 117,currentWriteId 78}: new [key={originalWriteId: 1,currentWriteId 78},nextRecord={2,1,536870912,117,78,null},reader=Hive ORC Reader(hdfs://hiveprodXXXXXX/warehouse/tablespace/managed/hive/schemaname.db/table_name/part_XXXXXXXXXXXXX=2021/delete_delta_0000067_0000080/bucket_00001,9223372036854775807)],old [key={originalWriteId: 1,reader=Hive ORC 

我也按照以下步骤操作: https://issues.apache.org/jira/browse/HIVE-22318 但是工单中建议的 CTAS 语句因相同的两个读取器错误而失败。

我该如何解决这个错误?并可能修复当前的表格以及什么将是长期解决方案。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)