trinodb / trino

Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
https://trino.io
Apache License 2.0
10.38k stars 2.98k forks source link

SerDeException for Avro Hive views #8748

Open haldes opened 3 years ago

haldes commented 3 years ago

We have recently moved from Presto-341 to Trino-356. We see that while querying hive views we are getting the below error. The same hive view works for the Presto-341 version. Both the versions are using the same HMS and same user/catalog properties. We are able to query the underlying tables but not the view. Also we are able to access the view directly through Hive and Presto-341 version.

We were able to get it to working with Trino-356 version by setting the below legacy view translation flag hive.legacy-hive-view-translation=true

Cannot ship the stack trace because of compliance issue. But the error is originating from the below classes.

Caused by: org.apache.hadoop.hive.metastore.api.MetaException: org.apache.hadoop.hive.serde2.SerDeException Encountered AvroSerdeException determining schema. Returning signal schema to indicate problem: Unable to read schema from given path: folder1/folder2/abc.avsc at com.linkedin.coral.hive.hive2rel.HiveTable.getDeserializerFromMetastore(HiveTable.java:186) at com.linkedin.coral.hive.hive2rel.HiveTable.getDeserializer(HiveTable.java:177) at com.linkedin.coral.hive.hive2rel.HiveTable.getColumns(HiveTable.java:163) at com.linkedin.coral.hive.hive2rel.HiveTable.getRowType(HiveTable.java:138) at org.apache.calcite.sql.validate.EmptyScope.resolve_(EmptyScope.java:159) ... at org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:940) at org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:647) ... at com.linkedin.coral.hive.hive2rel.HiveToRelConverter.convertView(HiveToRelConverter.java:110) at io.trino.plugin.hive.ViewReaderUtil$HiveViewReader.decodeViewData(ViewReaderUtil.java:142)

Caused by: org.apache.hadoop.hive.metastore.api.MetaException: org.apache.hadoop.hive.serde2.SerDeException Encountered AvroSerdeException determining schema. Returning signal schema to indicate problem: Unable to read schema from given path: folder1/folder2/abc.avsc at org.apache.hadoop.hive.metastore.HiveMetastoreUtils.getDeserializer(HiveMetaStoreUtils.java:98) at org.apache.hadoop.hive.metastore.HiveMetastoreUtils.getDeserializer(HiveMetaStoreUtils.java:77) at com.linkedin.coral.hive.hive2rel.HiveTable.getDeserializerFromMetastore(HiveTable.java:184)

haldes commented 3 years ago

@hashhar Slack discussion link