如何在" local-cluster"下对scala测试一个Spark程序模式?

时间:2015-10-09 20:34:12

标签: apache-spark classpath

我有一个Spark程序,它在本地模式下有非常完整的测试套件,但是当部署在Spark集群上时,它会演示几个序列化和同步问题,测试套件无法检测到这些问题。

因此,我希望将这些测试迁移到本地群集模式。这是我的SparkConf设置:

new SparkConf().setAppName("unit")
.setMaster("local-cluster[2,4,1024]")
.setAppName("DataPassportSparkTest")
.setSparkHome(System.getenv("SPARK_HOME"))
.set("spark.driver.classpath", sys.props("java.class.path"))
.set("spark.executor.classpath", sys.props("java.class.path"))
.set("spark.executor.memory", "1g")
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")

然而,我尝试将java类路径添加到Spark应用程序似乎没有理由失败,因此Spark总是抱怨我的类无法找到。有没有办法通知Spark存在我的类路径?

1 个答案:

答案 0 :(得分:1)

好的,这是一个愚蠢的错误,我只需要用“extraClassPath”替换“classpath”:

new SparkConf().setAppName("unit")
.setMaster("local-cluster[2,4,1024]")
.setAppName("DataPassportSparkTest")
.setSparkHome(System.getenv("SPARK_HOME"))
.set("spark.driver.extraClassPath", sys.props("java.class.path"))
.set("spark.executor.extraClassPath", sys.props("java.class.path"))
.set("spark.executor.memory", "1g")
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")