我知道可以在spark-submit脚本中设置集群模式。但是我希望通过代码或可执行选项来设置应用程序,例如java -Dspark.submit.deploymode = cluster ~~。
我想在集群模式下运行我的spark应用程序。
答案 0 :(得分:0)
如果您不想使用spark-submit命令,并且想要使用自己的Java代码启动Spark作业,则需要使用Spark Java API,主要是org.apache.spark.launcher包: Spark 1.6 Java API Docs
以下代码取自链接并略有修改。
import org.apache.spark.launcher.SparkAppHandle;
import org.apache.spark.launcher.SparkLauncher;
public class MyLauncher {
public static void main(String[] args) throws Exception {
SparkAppHandle handle = new SparkLauncher()
.setAppResource("/my/app.jar")
.setMainClass("my.spark.app.Main")
.setMaster("XXX") // Master URL based on doc in [2]
.setDeployMode("cluster")
.setConf(SparkLauncher.DRIVER_MEMORY, "2g")
.startApplication();
// Use handle API to monitor / control application.
}
}