ошибка stackoverflow в библиотеке kryo в кусте 2.3.2 - PullRequest
0 голосов
/ 25 мая 2018

Я переношу задания emr с emr 3.7.0 на 5.13.0.Мы используем функцию brickhouse udf в нашем скрипте улья.На EMR 5.13.0 я получаю ошибку stackoverflow в библиотеке kryo .После глубокого погружения я обнаружил, что эта проблема ( ссылка ) была исправлена ​​в библиотеке крио в 2015 году. Я получаю следующее исключение в улье 2.3.2.

Caused by: org.apache.hive.com.esotericsoftware.kryo.KryoException: java.lang.IllegalArgumentException: Unable to create serializer "org.apache.hive.com.esotericsoftware.kryo.serializers.FieldSerializer" for class: java.util.concurrent.atomic.AtomicReference
Serialization trace:
_tableInfo (org.codehaus.jackson.sym.BytesToNameCanonicalizer)
_rootByteSymbols (org.codehaus.jackson.JsonFactory)
jsonFactory (brickhouse.udf.json.ToJsonUDF)
genericUDF (org.apache.hadoop.hive.ql.plan.ExprNodeGenericFuncDesc)
colExprMap (org.apache.hadoop.hive.ql.exec.SelectOperator)

Затем следует

Caused by: java.lang.StackOverflowError
at java.util.HashMap.hash(HashMap.java:339)
at java.util.HashMap.get(HashMap.java:557)
at org.apache.hive.com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:61)
at org.apache.hive.com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
at org.apache.hive.com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
at org.apache.hive.com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
at org.apache.hive.com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
at org.apache.hive.com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
at org.apache.hive.com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)
at org.apache.hive.com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:62)

Эта трассировка стека содержит код ( ссылка ), который был удален как часть исправления из библиотеки kryo.

...