Я регистрирую классы, которые имеют бизнес-логику и классы моделей с Kyro в искровом режиме. Я получаю НИЖЕ за исключениемSpark - зарегистрировать объекты модели с Kyro - вызван: java.lang.IllegalArgumentException: класс не зарегистрирован:
> Job aborted due to stage failure: Task 14 in stage 1.0 failed 4 times,
> most recent failure: Lost task 14.3 in stage 1.0 (TID 90, **):
> java.lang.IllegalArgumentException: Class is not registered: Object[]
> Note: To register this class use: kryo.register(Object[].class); at
> com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:442) at
> com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:79)
> at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:472) at
> com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:565) at
> org.apache.spark.serializer.KryoSerializerInstance.serialize(KryoSerializer.scala:296)
> at
> org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:239)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
>
> Driver stacktrace:
Kyro Registrtor: класс
public class KyroSerializer implements KryoRegistrator {
@Override
public void registerClasses(Kryo kryo) {
kryo.register(People.class);
kryo.register(Lookup.class);
}
}
Модель:
class people implements Serializable{
private static final long serialVersionUID = 1L; ...... }
public class Lookup implements Serializable{
private static final long serialVersionUID = 1L;
private String code1;
private String code2;
}
Наконец мой контекст Spark:
sc.set ("искру. kryo.registrator ", KyroSerializer.class.getName())