Java Kryo反序列化程序在spark中抛出ClassNotFoundException:找不到类

Java Kryo反序列化程序在spark中抛出ClassNotFoundException:找不到类,java,scala,apache-spark,kryo,Java,Scala,Apache Spark,Kryo,我正在scala中编写一个spark作业,将使用spark 1.3.0运行。我的RDD转换函数使用不可序列化的第三方库中的类。为了使闭包序列化成为可能,我将这些对象包装在com.twitter.chill.MeatLocker中,它本身是java.io.Serializable的,但使用Kryo包装对象。然后,我使用assembly制作了一个uber jar 当我运行作业时,executors任务无法为我包装在MeatLocker中的相同类抛出ClassNotFoundException。我知道

我正在scala中编写一个spark作业,将使用spark 1.3.0运行。我的RDD转换函数使用不可序列化的第三方库中的类。为了使闭包序列化成为可能,我将这些对象包装在com.twitter.chill.MeatLocker中,它本身是java.io.Serializable的,但使用Kryo包装对象。然后,我使用assembly制作了一个uber jar

当我运行作业时,executors任务无法为我包装在MeatLocker中的相同类抛出ClassNotFoundException。我知道spark 1.2.x中有一个相关的bug,但通过谷歌搜索这个问题,我发现它已经在1.3.0中修复了

我尝试了spark配置属性spark.executor.userClassPathFirst=true,但没有效果。我将此属性传递给spark submit脚本,如下所示:
spark submit--class--conf spark.executor.userClassPathFirst=true


除此之外,我别无选择,只能获取第三方库的源代码,并在使这些类实现java.io.Serializable之后将其包含在我的项目中。这样,我将完全消除对Kryo序列化的需要,因此不会遇到此问题,但我希望有更好的方法。

从那时起,您解决了您的问题吗?