gpt4 book ai didi

java - 为什么 SparkLauncher 立即返回并且没有产生任何工作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:02 24 4
gpt4 key购买 nike

我在 Spark v1.6.0 中使用 SparkLauncher。我的问题是,当我使用此类启动我的 Spark 作业时,它立即返回并且没有提交任何作业。我的代码如下。

new SparkLauncher()
.setAppName("test word count")
.setAppResource("file://c:/temp/my.jar")
.setMainClass("my.spark.app.Main")
.setMaster("spark://master:7077")
.startApplication(new SparkAppHandler.Listener() {
@Override public void stateChanged(SparkAppHandle h) { }
@Override public void infoChanged(SparkAppHandle h) { }
});

当我调试代码时,令我惊讶的是,我注意到所有这些 clazz 真正做的是使用 ProcessBuilder 调用脚本 spark-submit.cmd

[C:/tmp/spark-1.6.0-bin-hadoop2.6/bin/spark-submit.cmd, --master, spark://master:7077, --name, "test word count", --class, my.spark.appMain, C:/temp/my.jar]

但是,如果我直接在控制台上运行此命令(由 ProcessBuilder 运行的命令),则会提交一个 Spark 作业。对发生的事情有什么想法吗?

还有另一种方法 SparkLauncher.launch() 可用,但 javadocs 说要避免使用这种方法。

知道发生了什么事吗?

最佳答案

如果它在控制台中有效但在您的程序中无效,您可能需要通过以下方式告诉 SparkLauncher 您的 Spark 主页在哪里:

.setSparkHome("C:/tmp/spark-1.6.0-bin-hadoop2.6")

但可能还有其他问题。您可能希望使用以下方法捕获其他调试信息:

.addSparkArg("--verbose")

Map<String, String> env = Maps.newHashMap();
env.put("SPARK_PRINT_LAUNCH_COMMAND", "1");

将 env 对象传递给 SparkLauncher 构造函数:

new SparkLauncher(env)

关于java - 为什么 SparkLauncher 立即返回并且没有产生任何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34801084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com