Hive 由于kryo stackoverflow异常,配置单元-GenericUDTF-runQuery失败

Hive 由于kryo stackoverflow异常,配置单元-GenericUDTF-runQuery失败,hive,yarn,kryo,mapr,Hive,Yarn,Kryo,Mapr,HiveServer2;配置单元版本:1.2 我试图运行一个包含自定义UDF类(实现GenericUDTF)的查询 UDF类包含一个用于计算的树对象 当树很小时,查询将正常运行。 但当树增长时,查询失败,出现以下错误: org.apache.hive.service.cli.HiveSQLException:处理语句时出错:失败:执行错误,返回代码-101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask。无效的 位于org.apache.hiv

HiveServer2;配置单元版本:1.2

我试图运行一个包含自定义UDF类(实现GenericUDTF)的查询

UDF类包含一个用于计算的树对象

当树很小时,查询将正常运行。 但当树增长时,查询失败,出现以下错误:

org.apache.hive.service.cli.HiveSQLException:处理语句时出错:失败:执行错误,返回代码-101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask。无效的 位于org.apache.hive.service.cli.operation.operation.toSQLException(operation.java:315) 位于org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:155) 位于org.apache.hive.service.cli.operation.SQLOperation.access$100(SQLOperation.java:70) 位于org.apache.hive.service.cli.operation.SQLOperation$1$1.run(SQLOperation.java:205) 位于java.security.AccessController.doPrivileged(本机方法) 位于javax.security.auth.Subject.doAs(Subject.java:422) 位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1595) 位于org.apache.hive.service.cli.operation.SQLOperation$1.run(SQLOperation.java:217) 位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)处 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 运行(Thread.java:745) 原因:java.lang.StackOverflowerr 位于org.apache.hive.com.esotericsoftware.kryo.util.DefaultClassResolver.writeName(DefaultClassResolver.java:90) 位于org.apache.hive.com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:81)


你知道怎么解决这个问题吗?配置单元配置中有什么神奇的属性吗

这个问题似乎与

我的解决方法是在运行时(在process()API中)而不是在initialize()API中初始化树对象