我有一个在HortonWorks2.6沙盒中工作的配置单元查询,但它在沙盒版本中不工作。3.0因为这个例外:
Caused by: org.apache.hive.com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 95
Serialization trace:
parentOperators (org.apache.hadoop.hive.ql.exec.vector.reducesink.VectorReduceSinkLongOperator)
childOperators (org.apache.hadoop.hive.ql.exec.vector.VectorFilterOperator)
childOperators (org.apache.hadoop.hive.ql.exec.TableScanOperator)
aliasToWork (org.apache.hadoop.hive.ql.plan.MapWork)
at org.apache.hive.com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:137)
at org.apache.hive.com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:670)
at org.apache.hadoop.hive.ql.exec.SerializationUtilities$KryoWithHooks.readClass(SerializationUtilities.java:185)
我该怎么修?
我已经看到了一些建议做的答案 set hive.exec.parallel=false;
但它不起作用,我仍然得到这个错误。
我检查了我使用的库的版本并确保 hadoop version
以及 hive --version
匹配我在jar中使用的库的版本。
我也试过这个:https://community.hortonworks.com/content/supportkb/150199/orgapachehivecomesotericsoftwarekryokryoexception-1.html 它也不起作用。
2条答案
按热度按时间amrnrhlw1#
我终于可以运行我的查询后,我缩小了我的尺寸
udf.jar
. 它以前是150MB,我把它减少到50KB。它看起来像一只kryo虫子。我从这里得到这个信息:https://github.com/esotericsoftware/kryo/issues/307我缩小了我的尺寸
udf.jar
通过将所有依赖项标记为provided
. 所以我从这里开始:对此:
这绝对是一个kryo bug,因为我能够用这么大的
udf.jar
在hortonworks 2.6中归档。我希望有人觉得这些信息很有价值。
r8uurelv2#
实际上我指的是Hive的线https://issues.apache.org/jira/browse/hive-7711 christian betz博士对此问题的评论建议实现donothingserializer来解决这个异常。我试着实施这个解决方案,问题就解决了。但是,我无法理解添加序列化程序如何解决此问题的细节。在此链接中查找解决方案。尝试为扩展genericudf的类实现以下序列化程序。