文档首页/ MapReduce服务 MRS/ 组件操作指南(安卡拉区域)/ 使用Hudi/ Hudi常见问题/ 数据写入/ 使用Spark SQL删除MOR表后重新建表写入数据无法同步ro、rt表
更新时间:2024-11-29 GMT+08:00

使用Spark SQL删除MOR表后重新建表写入数据无法同步ro、rt表

问题

使用Spark SQL删除MOR表后重新建表写入数据不能实时同步ro、rt表,报错如下:

WARN HiveSyncTool: Got runtime exception when hive syncing, but continuing as ignoreExceptions config is set
java.lang.IllegalArgumentException: Failed to get schema for table hudi_table2_ro does not exist
at org.apache.hudi.hive.HoodieHiveClient.getTableSchema(HoodieHiveClient.java:183)
at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:286)
at org.apache.hudi.hive.HiveSyncTool.doSync(HiveSyncTool.java:213)

回答

原因:

Hudi表为减少访问Hive Metastore的频率,增加了缓存机制,默认缓存1小时,所以使用Spark SQL删除MOR表后重新建表写入数据无法同步ro、rt表。

解决方案:

执行SQL时设置参数:hoodie.datasource.hive_sync.interval=0

set hoodie.datasource.hive_sync.interval=0;