我试图通过Yarn在CDH5.4群集上运行Spark 1.4.1作业。序列化设置为使用Kryo。
我有一个大对象,我作为广播发送给执行者。该对象似乎序列化很好。然而,当它试图反序列化时,Kryo会抛出ClassNotFoundException
一个类,这个类位于我spark-submit
的胖罐中。
在执行程序中,Kryo可能导致此类路径问题的原因是什么?我应该在哪里开始尝试诊断问题?感谢您提供的任何帮助。
更新:由于某种原因,我使用spark-submit
提交的jar文件未添加到类路径中。我检查了节点管理器目录,它正在上传 - 它被重命名为__app__.jar
,并通过符号链接放入容器工作目录中。包含spark程序集的文件__spark__.jar
位于同一目录中,并且IS包含在类路径中。包含它的文件夹也包括在内。
当我在本地模式下运行时,我提交的jar被尽职尽责地包含在类路径的用户添加元素中。
是什么导致这种情况?