为什么Kryo会在胖jar(CDH/YARN)中为类抛出ClassNotFoundException?

Nic*_*son 6 kryo hadoop-yarn scala-2.11 apache-spark cloudera-cdh

我正试图通过Yarn在CDH5.4集群上运行Spark 1.4.1作业.序列化设置为使用Kryo.

我有一个大对象,我作为广播发送给执行者.该对象似乎序列化很好.然而,当它试图反序列化时,Kryo会抛出一个类似于ClassNotFoundException我的胖罐中的类spark-submit.

什么可能导致Kryo对执行程序的这个类路径问题?我应该在哪里开始尝试诊断问题?我感谢您提供的任何帮助.

更新:由于某种原因,我提交的jar文件spark-submit未添加到类路径中.我检查了节点管理器目录,它正在被上传 - 它被重命名__app__.jar,并通过符号链接放入容器工作目录中.__spark__.jar包含spark程序集的文件位于同一目录中,并且IS包含在类路径中.包含它的文件夹也包含在内.

当我在本地模式下运行时,我提交的jar被尽职尽责地包含在类路径的用户添加元素中.

什么可能导致这个?