1

我正在运行一个 spark 独立集群,其中有 3 个节点。一个是master,另外两个是worker。我在所有三个节点中都复制了/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());
    }

  }
}

在此处输入图像描述

4

1 回答 1

0

如果本地文件系统中存在 jar 文件,请指定位置,如 file:///home/bizruntime/Read_from_ADL-0.0.1-SNAPSHOT.jar

于 2017-08-08T02:52:23.053 回答