我有一个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存在我的类路径?
答案 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")