[ https://issues.apache.org/jira/browse/HIVE-5279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13765418#comment-13765418 ]
Ashutosh Chauhan commented on HIVE-5279: ---------------------------------------- It was valid to use UDAFEvaluator without default ctor earlier on jdk6. Since, java xml serialization was lenient on that. However, on jdk7 you are required to provide a no-arg ctor even for java xml serialization. So, even without Kryo, you would run into this problem, once Hive moves to jdk7. However, patch I have uploaded eliminates this requirement altogether, since genericUDAFEvaluator (user provided class) is no longer stored as field in AggregatorDesc. So, if this patch works it won't matter if you have default ctor or not either for Kryo or jdk6 or jdk7. > Kryo cannot instantiate GenericUDAFEvaluator in GroupByDesc > ----------------------------------------------------------- > > Key: HIVE-5279 > URL: https://issues.apache.org/jira/browse/HIVE-5279 > Project: Hive > Issue Type: Bug > Components: Query Processor > Reporter: Navis > Priority: Critical > Attachments: 5279.patch > > > We didn't forced GenericUDAFEvaluator to be Serializable. I don't know how > previous serialization mechanism solved this but, kryo complaints that it's > not Serializable and fails the query. > The log below is the example, > {noformat} > java.lang.RuntimeException: com.esotericsoftware.kryo.KryoException: Class > cannot be created (missing no-arg constructor): > org.apache.hadoop.hive.serde2.objectinspector.StandardListObjectInspector > Serialization trace: > inputOI > (org.apache.hadoop.hive.ql.udf.generic.GenericUDAFGroupOn$VersionedFloatGroupOnEval) > genericUDAFEvaluator (org.apache.hadoop.hive.ql.plan.AggregationDesc) > aggregators (org.apache.hadoop.hive.ql.plan.GroupByDesc) > conf (org.apache.hadoop.hive.ql.exec.GroupByOperator) > childOperators (org.apache.hadoop.hive.ql.exec.SelectOperator) > childOperators (org.apache.hadoop.hive.ql.exec.TableScanOperator) > aliasToWork (org.apache.hadoop.hive.ql.plan.MapWork) > at > org.apache.hadoop.hive.ql.exec.Utilities.getBaseWork(Utilities.java:312) > at > org.apache.hadoop.hive.ql.exec.Utilities.getMapWork(Utilities.java:261) > at > org.apache.hadoop.hive.ql.io.HiveInputFormat.init(HiveInputFormat.java:256) > at > org.apache.hadoop.hive.ql.io.HiveInputFormat.pushProjectionsAndFilters(HiveInputFormat.java:383) > at org.apache.h > {noformat} > If this cannot be fixed in somehow, some UDAFs should be modified to be run > on hive-0.13.0 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira