Hi, all

We are using Java API in Spark and tried to use KryoSerializer as the method
for Java object 
serialization(http://spark.incubator.apache.org/docs/latest/tuning.html#data
-serialization). Before creating SparkContext, the following code lines are
inserted: 

System.setProperty("spark.serializer",
"org.apache.spark.serializer.KryoSerializer");

System.setProperty("spark.kryo.registrator",
"com.zyz.spark.bi.log.BiKryoRegistrator");



In the implementation of KryoRegistrator in class BiKryoRegistrator, all the
referred classes are registered in the way like

kryo.register(IpLocationDict.class);



And we printed a log in the beginning of registration:

System.err.println("enter BiKryoRegistrator.registerClasses");



With these setting, we run the package in mesos, but still get the following
error message: 

Exception in thread "main" org.apache.spark.SparkException: Job failed:
java.io.NotSerializableException: com.zyz.spark.bi.log.IpLocationDict



The log message "enter BiKryoRegistrator.registerClasses" shows that all the
registration of class are executed indeed. We googled the error message, but
failed to get the helpful information.



So any other steps we missed for using KryoSerializer? Any hints or
suggestions are appreciated.



Thanks in advance,

Jianmin


Reply via email to