Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 安装程序构造函数不工作_Apache Spark_Spark Launcher - Fatal编程技术网

Apache spark 安装程序构造函数不工作

Apache spark 安装程序构造函数不工作,apache-spark,spark-launcher,Apache Spark,Spark Launcher,我需要从Liberty(17.0.0.2)上运行的Web应用程序启动的线程运行Spark作业。这是部署在Docker容器上的 我可以通过从java代码启动spark submit脚本来启动spark(2.2.0)作业来实现这一点。但是,我想删除脚本调用并使用SparkLauncher。当我这样做时,代码挂起在SparkLauncher构造函数上。构造函数不会返回任何阻塞整个工作的内容。在下面的代码中,我没有看到调用构造函数后的日志 private static Map<String, St

我需要从Liberty(17.0.0.2)上运行的Web应用程序启动的线程运行Spark作业。这是部署在Docker容器上的

我可以通过从java代码启动spark submit脚本来启动spark(2.2.0)作业来实现这一点。但是,我想删除脚本调用并使用SparkLauncher。当我这样做时,代码挂起在SparkLauncher构造函数上。构造函数不会返回任何阻塞整个工作的内容。在下面的代码中,我没有看到调用构造函数后的日志

private static Map<String, String> env = new HashMap<String, String>();
static {
    env.put("SPARK_HOME", "/Spark");
    env.put("JAVA_HOME", "/opt/ibm/java-x86_64-80/jre");
    env.put("SPARK_PRINT_LAUNCH_COMMAND","1");
}
private static final String SPARK_MASTER_URL = "local[*]";

public SparkAppHandle launch(String appName, String appJar, String sparkClass, String[] args)
        throws IOException, InterruptedException {
    logger.logp(Level.INFO, CLASS, "launch", " About to create SparkLauncher ");
    SparkLauncher launchPad = new SparkLauncher(env);

    logger.logp(Level.INFO, CLASS, "launch", " About to set Spark App Name ");
    launchPad = launchPad.setAppName(appName);
private static Map env=new HashMap();
静止的{
环境投入(“星火之家”、“/SPARK”);
env.put(“JAVA_HOME”,“/opt/ibm/JAVA-x86_64-80/jre”);
环境put(“火花打印启动命令”,“1”);
}
私有静态最终字符串SPARK_MASTER_URL=“local[*]”;
公共SparkAppHandle启动(字符串appName、字符串appJar、字符串sparkClass、字符串[]args)
抛出IOException、InterruptedException{
logger.logp(Level.INFO,CLASS,“launch”,“即将创建SparkLauncher”);
SparkLaunchPad=新SparkLauncher(环境);
logger.logp(Level.INFO,CLASS,“launch”,“即将设置Spark应用程序名”);
launchPad=launchPad.setAppName(appName);

关于如何进一步调试的任何线索?我找不到包含调试此问题的任何信息的日志。

是否调用SparkLauncher的启动方法?它将返回进程,您需要捕获此进程的输出以查看发生了什么。

这是一个类路径问题;缺少一些JAR。但是,不知何故,没有I日志中的信息来调试这个,非常奇怪。在确保类路径中的所有相关JAR开始工作后。

否,我没有使用launch,但startApplicationstartApplication也将启动另一个进程,调用redirectOutput方法重定向进程输出