火花启动器无限等待作业完成
2022-09-03 00:36:50
我正在尝试从Java代码将带有Spark作业的JAR提交到YARN集群中。我正在使用SparkLauncher提交SparkPi示例:
Process spark = new SparkLauncher()
.setAppResource("C:\\spark-1.4.1-bin-hadoop2.6\\lib\\spark-examples-1.4.1-hadoop2.6.0.jar")
.setMainClass("org.apache.spark.examples.SparkPi")
.setMaster("yarn-cluster")
.launch();
System.out.println("Waiting for finish...");
int exitCode = spark.waitFor();
System.out.println("Finished! Exit code:" + exitCode);
有两个问题:
- 在“yarn-cluster”模式下提交时,应用程序成功提交到 YARN 并成功执行(它在 YARN UI 中可见,报告为 SUCCESS,pi 打印在输出中)。但是,提交申请的申请永远不会收到处理已完成的通知 - 在打印“等待完成...”后,它会无限期挂起。容器的日志可以在这里找到
- 在“yarn-client”模式下提交时,应用程序不会出现在 YARN UI 中,并且提交的应用程序挂起在“正在等待完成...”当挂起代码被终止时,应用程序将显示在 YARN UI 中,并报告为 SUCCESS,但输出为空(pi 未打印出来)。容器的日志可以在这里找到
我试图使用Oracle Java 7和8执行提交应用程序。