我正在运行一个Spark独立集群,其中我有3个节点。一个是主人,另外两个是工人。我在所有三个位置的所有三个节点中复制了作业 / home / bizruntime / ***。jar ,当我在master中使用spark-submit提交作业时,作业正在运行。
但我的群集位于远程位置,每次都无法访问主节点终端。所以我想使用Spark Launcher来触发我的笔记本电脑的工作,这是一台Windows机器。但是当我在我的笔记本电脑中运行Eclipse中的spark启动程序时,它会启动一个驱动程序,我可以在Spark UI中看到它然后它会出错。当我在日志中检查错误时,因为没有在节点中找到jar。
我在appResource()函数中给出的路径Spark启动器是 / home / bizruntime / ***。jar 这个。但他们正在 $ Eclipse_Worksapce / home / bizruntime / ***。jar
中搜索jar我的问题是如何在没有$ Eclipse_Worksapce的情况下给出绝对路径。
package com.biz.Remote_Start;
import java.io.IOException;
import org.apache.spark.launcher.SparkAppHandle;
import org.apache.spark.launcher.SparkLauncher;
/**
* Hello world!
*
*/
public class App {
public static void main(String[] args) {
try {
Process handle = new SparkLauncher()
.setAppResource("home/bizruntime/Read_from_ADL-0.0.1-SNAPSHOT.jar")
.setMainClass("com.biz.Read_from_ADL.App")
.setMaster("spark://192.168.1.154:7077")
.setDeployMode("cluster")
.launch();
handle.waitFor();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
答案 0 :(得分:0)
Incase jar文件存在于本地文件系统中,请指定文件位置:///home/bizruntime/Read_from_ADL-0.0.1-SNAPSHOT.jar