Spark ClassNotFoundException $$anonfun$2

Posted fansy1990

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark ClassNotFoundException $$anonfun$2相关的知识,希望对你有一定的参考价值。

Spark ClassNotFoundException $$anonfun$2

1. 软件环境:

软件版本
Spark原生1.6.0
Hadoop原生2.6.5

2. 应用场景&问题描述

使用Java Web提交任务到Spark Standalone集群中运行任务,运行任务的过程中,指定主类,比如a.b.c.Test, 那么主类是可以被调用的。比如已经运行到a.b.c.Test中的代码,但是接着会报诸如:ClassNotFound : a.b.c.Test$$anonfun$1这样的异常,如下所示:

而通过把a.b.c.Test所在的jar包解压,可以看到其中是有诸如a.b.c.Test$$anonfun$1.class 这样的文件的。通过反编译软件可以看到这个类是a.b.c.Test中的一个函数,这样就很奇诡了。主类Test找得到,但是和其同一个文件的函数的类反而找不到。

3. 解决办法

由于是报类找不到,而且定位是在Executor执行的时候,所以,尝试把jar包加入executor的Classpath中,在代码中添加:

sparkConf.set("spark.executor.extraClassPath","path/to/a.b.c.Test/.jar");

而且,其实已经设置了spark.jars:

sparkConf.set("spark.jars","hdfs://path/to/a.b.c.Test/.jar")
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于Spark ClassNotFoundException $$anonfun$2的主要内容,如果未能解决你的问题,请参考以下文章

android 库项目中的方法引用过多 - ClassNotFoundException

java序列化与反序列化流的操作,打印流的输出

科普Spark,Spark是什么,如何使用Spark

Spark面试题——Spark资源调优

spark提交参数解析

科普Spark,Spark是啥,如何使用Spark