2015-10-09 28 views
0

我有一個Spark程序,在本地模式下有非常完整的測試套件,但是當部署在Spark羣集上時,它演示了幾個序列化和同步問題,測試套件無法檢測到這些問題。如何在「local-cluster」模式下對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我的類路徑的存在?

回答

1

OK,這是一個愚蠢的錯誤,我需要的是取代「類路徑」與「extraClassPath」:

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") 
相關問題