我编写了以下函数,该函数使用SparkLauncher
作为特定用户提交Spark作业。我正在使用handle.getState
来监控这些工作,他们正在接受“失败”工作。居留制。句柄确实被分配了一个应用程序ID,但是在其上调用yarn logs -applicationId
表明没有保存任何日志。此外,我在历史记录服务器中找不到应用程序ID。
def submitSparkJob(master: String,
applicationPath: String,
jarPaths: List[String],
arguments: List[String],
properties: Map[String, String],
mainClass: String): SparkAppHandle = {
val env = Map(
"HADOOP_USER_NAME" -> "username"
)
val launcher = new SparkLauncher(env.asJava)
.setMaster(master) // "yarn" in this case
.setDeployMode("cluster")
.setJavaHome(configuration.underlying.getString("static.javaHome"))
.setSparkHome(configuration.underlying.getString("static.sparkHome"))
.setMainClass(mainClass)
.setAppResource(applicationPath)
for (jar <- jarPaths) {
launcher.addJar(jar)
}
for (property <- properties) {
launcher.addSparkArg(property._1, property._2)
}
launcher.startApplication()
}
对我而言,尽管已经提交了#34;提交了#34;状态一度。我当前的配置可能有问题吗?