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

Ferdinand Xu commented on HIVE-7868:
------------------------------------

The messages are as followings:
0: jdbc:hive2://localhost:10000> describe test_avro;
14/10/10 09:07:28 ERROR exec.DDLTask: 
org.apache.hadoop.hive.ql.metadata.HiveException: Exception while processing 
test_avro
        at 
org.apache.hadoop.hive.ql.exec.DDLTask.describeTable(DDLTask.java:3137)
        at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:366)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:161)
        at 
org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1605)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1365)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1178)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1005)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1000)
        at 
org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:144)
        at 
org.apache.hive.service.cli.operation.SQLOperation.access$100(SQLOperation.java:69)
        at 
org.apache.hive.service.cli.operation.SQLOperation$1$1.run(SQLOperation.java:196)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
        at 
org.apache.hadoop.hive.shims.HadoopShimsSecure.doAs(HadoopShimsSecure.java:508)
        at 
org.apache.hive.service.cli.operation.SQLOperation$1.run(SQLOperation.java:208)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: java.sql.SQLException: Encountered AvroSerdeException determining 
schema. Returning signal schema to indicate problem: Unable to read schema from 
given path: hdfs://localhost:9000/tmp/test_serializer.avsc
        at 
org.apache.hadoop.hive.ql.exec.DDLTask.describeTable(DDLTask.java:3094)
        ... 21 more

14/10/10 09:07:28 ERROR ql.Driver: FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask. Exception while processing test_avro
14/10/10 09:07:28 ERROR operation.Operation: Error running hive query: 
org.apache.hive.service.cli.HiveSQLException: Error while processing statement: 
FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask. Exception while processing test_avro
        at 
org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:314)
        at 
org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:146)
        at 
org.apache.hive.service.cli.operation.SQLOperation.access$100(SQLOperation.java:69)
        at 
org.apache.hive.service.cli.operation.SQLOperation$1$1.run(SQLOperation.java:196)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
        at 
org.apache.hadoop.hive.shims.HadoopShimsSecure.doAs(HadoopShimsSecure.java:508)
        at 
org.apache.hive.service.cli.operation.SQLOperation$1.run(SQLOperation.java:208)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Exception while 
processing test_avro
        at 
org.apache.hadoop.hive.ql.exec.DDLTask.describeTable(DDLTask.java:3137)
        at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:366)
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:161)
        at 
org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1605)
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1365)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1178)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1005)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1000)
        at 
org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:144)
        ... 12 more
Caused by: java.sql.SQLException: Encountered AvroSerdeException determining 
schema. Returning signal schema to indicate problem: Unable to read schema from 
given path: hdfs://localhost:9000/tmp/test_serializer.avsc
        at 
org.apache.hadoop.hive.ql.exec.DDLTask.describeTable(DDLTask.java:3094)
        ... 21 more
Error: Error while processing statement: FAILED: Execution Error, return code 1 
from org.apache.hadoop.hive.ql.exec.DDLTask. Exception while processing 
test_avro (state=08S01,code=1)


> 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
>         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)

Reply via email to