如何在不使用 spark-submit 的情况下从 java 程序中将 spark 作业提交到独立的 spark 集群?

How to submit spark job from within java program to standalone spark cluster without using spark-submit?

我正在使用 spark 执行一些计算,但希望它从 java 提交 application.It 使用 spark-submit script.Has 提交时可以正常使用 script.Has 有人试过这样做吗?

谢谢。

只要您启动了 master 和可用的 worker,如果您的 java 应用程序中包含以下内容,您应该能够:

String master = "spark://IP:7077"; //set IP address to that of your master
String appName = "Name of your Application Here";
SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);;
JavaSparkContext sc = new JavaSparkContext(conf);

我能够 运行 从使用 JavaSparkContext 的 IntelliJ 中进行 junit 测试,而无需使用 spark-submit 脚本。不过,我 运行 在对 DataFrames 执行操作时遇到了问题(不确定这是否相关)。

不要忘记将包含您的代码的胖 JAR 添加到上下文中。

val conf = new SparkConf()
   .setMaster(...)
   .setAppName(...)
   .setJars("/path/to/code.jar")
val sc = new SparkContext(conf)