You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Anthony Hsu (JIRA)" <ji...@apache.org> on 2016/05/26 01:38:12 UTC

[jira] [Commented] (HIVE-7868) AvroSerDe error handling could be improved

    [ https://issues.apache.org/jira/browse/HIVE-7868?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15301281#comment-15301281 ] 

Anthony Hsu commented on HIVE-7868:
-----------------------------------

bq. Fixing bad URL schema works.

I am also unable to do this. If I create a table with a valid avro.schema.url, then delete the file from HDFS, and then try to alter the table's avro.schema.url to point to a new location, Hive still tries to validate the old location and fails the query:
{code}
hive> alter table avro_schema_url set tblproperties ('avro.schema.url'='hdfs:///user/ahsu/tmp/int.avsc');
FAILED: RuntimeException MetaException(message:org.apache.hadoop.hive.serde2.SerDeException Encountered AvroSerdeException determining schema. Returning signal schema to indicate problem: Unable to read schema from given path: hdfs:///user/ahsu/int.avsc)
{code}

Is the only workaround for this recreating the original location?

> AvroSerDe error handling could be improved
> ------------------------------------------
>
>                 Key: HIVE-7868
>                 URL: https://issues.apache.org/jira/browse/HIVE-7868
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: Brock Noland
>            Assignee: Ferdinand Xu
>             Fix For: 1.1.0
>
>         Attachments: HIVE-7868.1.patch, HIVE-7868.2.patch
>
>
> When an Avro schema is invalid, AvroSerDe returns an error message instead of throwing an exception. This is described in {{AvroSerdeUtils.determineSchemaOrReturnErrorSchema}}:
> {noformat}
>   /**
>    * Attempt to determine the schema via the usual means, but do not throw
>    * an exception if we fail.  Instead, signal failure via a special
>    * schema.  This is used because Hive calls init on the serde during
>    * any call, including calls to update the serde properties, meaning
>    * if the serde is in a bad state, there is no way to update that state.
>    */
> {noformat}
> I believe we should find a way to provide a better experience to our users.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)